🐡

Numpyについて

2024/07/14に公開

NumPy概要

NumPy(Numerical Python)は、Pythonにおける科学技術計算のための基本的なパッケージです。以下にその主要な特徴と機能を示します:

  1. 多次元配列オブジェクト
  • NumPyの中心的な機能は ndarray(N-dimensional array)オブジェクトです。
  • これは高効率な多次元配列を提供し、同じデータ型の要素を格納します。
  1. 数学的操作
  • 配列全体に対する数学的操作を高速に実行できます。
  • 行列の乗算、転置、逆行列の計算などの線形代数演算をサポートします。
  1. ブロードキャスティング
  • 異なるサイズの配列間での演算を可能にする強力な機能です。
  • 小さい配列を大きい配列に自動的に「拡張」して演算を行います。
  1. 高速な処理
  • C言語で実装されているため、純粋なPythonコードよりも非常に高速です。
  • 大規模なデータセットに対する操作を効率的に行えます。
  1. 乱数生成と統計関数
  • 様々な確率分布に従う乱数の生成が可能です。
  • 平均、標準偏差、分散などの基本的な統計関数を提供します。
  1. ファイルの入出力
  • 配列データの保存と読み込みのための関数を提供します。
  • CSVファイルや独自のバイナリ形式(.npy, .npz)をサポートします。
  1. フーリエ変換
  • 離散フーリエ変換(DFT)のための関数を提供します。
  • 信号処理や画像処理に役立ちます。
  1. 線形代数
  • ベクトル、行列の演算に必要な様々な関数を提供します。
  • 固有値計算、行列分解などの高度な操作も可能です。
  1. その他の機能
  • マスク処理、インデキシング、スライシングなど、配列の高度な操作をサポートします。
  • SciPy, Pandas, Matplotlibなど他の科学技術計算ライブラリとシームレスに連携します。
    NumPyは、データ科学、機械学習、科学計算、画像処理など、多くの分野で広く使用されています。その高速な処理能力と豊富な機能により、Pythonを用いた科学技術計算の基盤となっています。
import numpy as np

# 現在のデータ(row)
row = [10, 20, 30, 40, 50]

# 1秒前のデータ(onesec_before_data[0]["data"])
onesec_before_data = [{"data": [5, 15, 25, 35, 45]}]

# NumPyの配列に変換
row_array = np.array(row)
before_array = np.array(onesec_before_data[0]["data"])

# 引き算を実行
result = row_array - before_array

print("現在のデータ:", row)
print("1秒前のデータ:", onesec_before_data[0]["data"])
print("結果:", result)
# 現在のデータ: [10, 20, 30, 40, 50]
# 1秒前のデータ: [5, 15, 25, 35, 45]
# 結果: [5 5 5 5 5]
import numpy as np

# 1次元配列
arr1 = np.array([1, 2, 3, 4])
print("1次元配列の shape:", arr1.shape)  # 出力: (4,)

# 2次元配列(行列)
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print("2次元配列の shape:", arr2.shape)  # 出力: (2, 3)

# 3次元配列
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("3次元配列の shape:", arr3.shape)  # 出力: (2, 2, 2)

Discussion