NumPy
Pythonによる科学技術計算の基礎パッケージ
ニュース

強力な多次元配列
NumPyの高速で多機能なベクトル化計算、インデックス処理、ブロードキャスティングのコンセプトは、今日の配列計算のデファクト・スタンダードです。

数値計算ツール群
NumPyは、様々な数学関数、乱数生成器、線形代数ルーチン、フーリエ変換などを提供しています。

相互運用性
NumPyは、幅広いハードウェアとコンピューティング・プラットフォームをサポートしており、分散処理、GPU、疎行列ライブラリにも対応しています。

高パフォーマンス
NumPyの中核は最適化されたC言語のコードです。Pythonの柔軟性を、コンパイルされたコードの高速さとともに享受できます。

使いやすさ
NumPyの高水準なシンタックスは、どんなバックグラウンドや経験値のプログラマーでも利用でき、生産性を高めることができます。

オープンソース
寛容なBSDライセンスで公開されています。NumPyは活発で、互いを尊重し、多様性を認め合うコミュニティによって、 GitHub上でオープンに開発されています.

Try NumPy

Use the interactive shell to try NumPy in the browser

"""
To try the examples in the browser:
1. Type code in the input cell and press
   Shift + Enter to execute
2. Or copy paste the code, and click on
   the "Run" button in the toolbar
"""

# The standard way to import NumPy:
import numpy as np

# Create a 2-D array, set every second element in
# some rows and find max per row:

x = np.arange(15, dtype=np.int64).reshape(3, 5)
x[1:, ::2] = -99
x
# array([[  0,   1,   2,   3,   4],
#        [-99,   6, -99,   8, -99],
#        [-99,  11, -99,  13, -99]])

x.max(axis=1)
# array([ 4,  8, 13])

# Generate normally distributed random numbers:
rng = np.random.default_rng()
samples = rng.normal(size=2500)
samples

エコシステム

  • Nearly every scientist working in Python draws on the power of NumPy.

    NumPy brings the computational power of languages like C and Fortran to Python, a language much easier to learn and use. With this power comes simplicity: a solution in NumPy is often clear and elegant.

    Quantum Computing Statistical Computing Signal Processing Image Processing Graphs and Networks Astronomy Processes Cognitive Psychology
    A computer chip. A line graph with the line moving up. A bar chart with positive and negative values. An photograph of the mountains. A simple graph. A telescope. A human head with gears.
    QuTiP Pandas SciPy Scikit-image NetworkX AstroPy PsychoPy
    PyQuil statsmodels PyWavelets OpenCV graph-tool SunPy
    Qiskit Xarray python-control Mahotas igraph SpacePy
    PennyLane Seaborn PyGSP
    Bioinformatics Bayesian Inference Mathematical Analysis Chemistry Geoscience Geographic Processing Architecture & Engineering
    A strand of DNA. A graph with a bell-shaped curve. Four mathematical symbols. A test tube. The Earth. A map. A microprocessor development board.
    BioPython PyStan SciPy Cantera Pangeo Shapely COMPAS
    Scikit-Bio PyMC3 SymPy MDAnalysis Simpeg GeoPandas City Energy Analyst
    PyEnsembl ArviZ cvxpy RDKit ObsPy Folium Sverchok
    ETE emcee FEniCS PyBaMM Fatiando a Terra
  • NumPy's API is the starting point when libraries are written to exploit innovative hardware, create specialized array types, or add capabilities beyond what NumPy provides.

    Array Library Capabilities & Application areas
    Dask Dask Distributed arrays and advanced parallelism for analytics, enabling performance at scale.
    CuPy CuPy NumPy-compatible array library for GPU-accelerated computing with Python.
    JAX JAX Composable transformations of NumPy programs differentiate: vectorize, just-in-time compilation to GPU/TPU.
    xarray Xarray Labeled, indexed multi-dimensional arrays for advanced analytics and visualization
    sparse Sparse NumPy-compatible sparse array library that integrates with Dask and SciPy's sparse linear algebra.
    PyTorch PyTorch Deep learning framework that accelerates the path from research prototyping to production deployment.
    TensorFlow TensorFlow An end-to-end platform for machine learning to easily build and deploy ML powered applications.
    MXNet MXNet Deep learning framework suited for flexible research prototyping and production.
    arrow Arrow A cross-language development platform for columnar in-memory data and analytics.
    xtensor xtensor Multi-dimensional arrays with broadcasting and lazy computing for numerical analysis.
    xnd XND Develop libraries for array computing, recreating NumPy's foundational concepts.
    uarray uarray Python backend system that decouples API from implementation; unumpy provides a NumPy API.
    tensorly tensorly Tensor learning, algebra and backends to seamlessly use NumPy, MXNet, PyTorch, TensorFlow or CuPy.
  • NumPy lies at the core of a rich ecosystem of data science libraries. A typical exploratory data science workflow might look like:

    For high data volumes, Dask andRay are designed to scale. Stabledeployments rely on data versioning (DVC),experiment tracking (MLFlow), andworkflow automation (Airflow andPrefect).

    Diagram of three overlapping circle. The circles labeled 'Mathematics', 'Computer Science' and 'Domain Expertise'. In the middle of the diagram, which has the three circles overlapping it, is an area labeled 'Data Science'.
  • NumPy forms the basis of powerful machine learning libraries like scikit-learn and SciPy. As machine learning grows, so does the list of libraries built on NumPy. TensorFlow’s deep learning capabilities have broad applications — among them speech and image recognition, text-based applications, time-series analysis, and video detection. PyTorch, another deep learning library, is popular among researchers in computer vision and natural language processing. MXNet is another AI package, providing blueprints and templates for deep learning.

    Statistical techniques called ensemble methods such as binning, bagging, stacking, and boosting are among the ML algorithms implemented by tools such as XGBoost, LightGBM, and CatBoost — one of the fastest inference engines. Yellowbrick and Eli5 offer machine learning visualizations.

  • NumPy is an essential component in the burgeoning Python visualization landscape, which includes Matplotlib, Seaborn, Plotly, Altair, Bokeh, Holoviz, Vispy, Napari, and PyVista, to name a few.

    NumPy’s accelerated processing of large arrays allows researchers to visualize datasets far larger than native Python could handle.

ケーススタディ