{"library":"numdifftools","title":"Numdifftools","description":"The numdifftools library is a suite of tools written in Python to solve automatic numerical differentiation problems in one or more variables. It employs finite differences in an adaptive manner, coupled with a Richardson extrapolation methodology, to provide maximally accurate results. The library is currently at version 0.9.42 and sees active, though not rapid, development, with the documentation for 0.9.41 updated in late 2025 and PyPI showing an update for 0.9.42 in early 2022.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install numdifftools"],"cli":null},"imports":["import numdifftools as nd","from numdifftools import Derivative"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nimport numdifftools as nd\n\ndef f(x):\n    return x**3 + x**2\n\n# Compute the 1st derivative of f(x) at x=1\ndf = nd.Derivative(f)\nresult_df = df(1)\nprint(f\"First derivative of f(x) at x=1: {result_df}\")\n\n# Compute the 2nd derivative of f(x) at x=1\nddf = nd.Derivative(f, n=2)\nresult_ddf = ddf(1)\nprint(f\"Second derivative of f(x) at x=1: {result_ddf}\")\n\n# Compute the gradient of a multivariate function\ndef rosen(x):\n    return (1 - x[0])**2 + 100 * (x[1] - x[0]**2)**2\n\ngrad = nd.Gradient(rosen)\nresult_grad = grad([1, 1]) # At the minimum of Rosenbrock function\nprint(f\"Gradient of Rosenbrock at (1,1): {result_grad}\")","lang":"python","description":"This quickstart demonstrates how to compute the first and second derivatives of a scalar function, and the gradient of a multivariate function using `numdifftools.Derivative` and `numdifftools.Gradient`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"0.9.41","pypi_latest":"0.9.42","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":7.2,"avg_import_s":1.24,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.04,"mem_mb":24.6,"disk_size":"231.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.7,"import_time_s":0.83,"mem_mb":24.2,"disk_size":"222M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.65,"mem_mb":26.5,"disk_size":"246.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.9,"import_time_s":1.44,"mem_mb":26.5,"disk_size":"236M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.44,"mem_mb":25.8,"disk_size":"232.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.1,"import_time_s":1.6,"mem_mb":25.8,"disk_size":"222M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.28,"mem_mb":25.3,"disk_size":"231.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.3,"import_time_s":1.42,"mem_mb":25.3,"disk_size":"221M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.89,"mem_mb":19.2,"disk_size":"233.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"numdifftools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.8,"import_time_s":0.83,"mem_mb":19.2,"disk_size":"230M"}]}}