以下の内容はhttps://pydocument.hatenablog.com/entry/2025/02/16/131902より取得しました。


NumPyの「zeros」の使い方 – 「0」で初期化された配列を生成する

NumPyは、Python数値計算を行うためのライブラリです。NumPyを使うと、効率的な数値計算に不可欠な多次元配列を簡単に作成・操作できます。この記事では、NumPyで0で初期化された配列を生成するためのzeros関数の基本的な使い方、そしてzeros_like関数との使い分けについて解説します。

zerosの基本的な使い方

zeros関数は、指定した形状(shape)とデータ型(dtype)を持つ、すべての要素が0で初期化された配列を生成します。

最もシンプルな例

import numpy as np

# 形状が(2, 3)の2次元配列を生成
arr = np.zeros((2, 3))
print(arr)

このコードでは、np.zeros((2, 3))によって、2行3列の2次元配列が生成され、arr変数に格納されます。zeros関数はデフォルトでfloat64型の0を生成します。

出力

[[0. 0. 0.]
 [0. 0. 0.]]

形状の指定

zeros関数の最初の引数には、生成したい配列の形状をタプルで指定します。

# 5つの要素を持つ1次元配列
arr1 = np.zeros(5)
print(arr1)

# 3x4x2の3次元配列
arr2 = np.zeros((3, 4, 2))
print(arr2)

出力

[0. 0. 0. 0. 0.]
[[[0. 0.]
  [0. 0.]
  [0. 0.]
  [0. 0.]]

 [[0. 0.]
  [0. 0.]
  [0. 0.]
  [0. 0.]]

 [[0. 0.]
  [0. 0.]
  [0. 0.]
  [0. 0.]]]

データ型の指定

dtype引数で、配列のデータ型を指定できます。デフォルトはfloat64です。

# int型の配列
arr_int = np.zeros((2, 2), dtype=int)
print(arr_int)

# complex型の配列
arr_complex = np.zeros((2, 2), dtype=complex)
print(arr_complex)

出力

[[0 0]
 [0 0]]
[[0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j]]

メモリレイアウトの指定(order)

order引数を使うと、多次元配列のメモリ上での配置順序を指定できます。 'C'(C言語スタイル)を選ぶと行優先、'F'(Fortranスタイル)を選ぶと列優先になります。デフォルトは'C'です。 通常意識する必要はありませんが、特定の計算ライブラリと連携する際に、パフォーマンスに影響することがあります。

# Fortranスタイルの配列
arr_f = np.zeros((2, 3), order='F')

zeros_likeの使い方

zeros_like関数は、既存の配列と同じ形状とデータ型を持つ、0で初期化された配列を生成します。

# 既存の配列
arr = np.array([[1, 2, 3], [4, 5, 6]])

# arrと同じ形状とデータ型の0配列を生成
arr_zeros = np.zeros_like(arr)
print(arr_zeros)

出力

[[0 0 0]
 [0 0 0]]

zeros_likeは、既存の配列の形状や型を明示的に指定せずに、それらを引き継いだ新しい配列を作成したい場合に便利です。

zeroszeros_like の使い分け

機能 zeros zeros_like
新規配列の生成
形状の指定 必要 不要(既存配列から取得)
データ型の指定 可能 不要(既存配列から取得)
  • zeros: 配列の形状とデータ型を明示的に指定して、新しい配列を作成する場合
  • zeros_like: 既存の配列と同じ形状とデータ型を持つ配列を作成する場合

まとめ

NumPyのzeroszeros_likeは、0で初期化された配列を生成します。 zerosは形状やデータ型を直接指定するのに対し、zeros_likeは既存の配列を基にする点が異なります。 これらの関数を使い分けることで、NumPyを使った数値計算を効率的に行えます。

1で初期化された配列を生成するNumpyのonesについては、下記の記事で解説しています。

pydocument.hatenablog.com




以上の内容はhttps://pydocument.hatenablog.com/entry/2025/02/16/131902より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14