Pandas & NumPy Academy · レッスン

NumPy配列の作成

np.array、np.zeros、np.ones、np.arangeを使って1次元・2次元配列を作成し、shapeとdtypeを確認します。

レッスン 1/413 ステップ

「NumPy配列の作成」はCoddyKit上の無料Pandas & NumPy Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPandas & NumPy Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Pandas & NumPy Academyコースには全4レッスンが含まれています。

NumPy配列とは

NumPyは、数値計算に広く使われているPythonのライブラリです。中核となるのがndarrayです。これは同じ型の値を格子状に並べたもので、リストよりもはるかに高速でメモリ効率に優れています。

import numpy as np

# NumPy arrays are fast, typed, and memory-efficient
print(np.__version__)

リストから配列を作成する

配列を作る最も簡単な方法は、リストをnp.array()に渡すことです。NumPyがdtypeを自動的に選択し、リストのリストからは2次元行列が作られます。

import numpy as np

a = np.array([1, 2, 3, 4, 5])
print(a)          # [1 2 3 4 5]
print(a.dtype)    # int64

m = np.array([[1, 2, 3], [4, 5, 6]])
print(m.shape)    # (2, 3)

np.zerosとnp.ones

何も入っていない配列が必要ですか?np.zerosは配列を0.0で埋め、np.onesは1.0で埋めます。実際の値を計算する前の配列を用意するのに最適です。

import numpy as np

z = np.zeros(5)
print(z)          # [0. 0. 0. 0. 0.]

o = np.ones((3, 4))
print(o.shape)    # (3, 4)
print(o.dtype)    # float64

整数列に使うnp.arange

np.arangeはPythonのrangeと同じように動作しますが、配列を返します。開始値、終了値、ステップ幅を指定します。終了値は含まれません。

import numpy as np

a = np.arange(0, 10, 2)
print(a)   # [0 2 4 6 8]

b = np.arange(1.0, 2.0, 0.25)
print(b)   # [1.   1.25 1.5  1.75]

等間隔の浮動小数点数に使うnp.linspace

等間隔の浮動小数点数が必要ですか?np.linspaceは、両端の値を含めた2つの端点の間に、指定した個数の値を生成します。丸め誤差の蓄積もありません。

import numpy as np

x = np.linspace(0, 1, 5)
print(x)   # [0.   0.25 0.5  0.75 1.  ]

y = np.linspace(0, 360, 7)
print(y)   # [  0.  60. 120. 180. 240. 300. 360.]

np.fullとnp.eye

np.fullを使うと、任意の定数で配列を埋められます。また、np.eyeを使うと単位行列を作成できます。対角成分が1で、それ以外が0の行列です。

import numpy as np

f = np.full((2, 3), 7)
print(f)
# [[7 7 7]
#  [7 7 7]]

I = np.eye(3)
print(I)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

作成時にdtypeを指定する

すべての配列では、値のdtypeが統一されています。dtype=で自分で指定できます。たとえばfloat64ではなくfloat32を選ぶと、メモリ使用量を半分にできる場合があります。

import numpy as np

a = np.array([1, 2, 3], dtype=np.float32)
print(a.dtype)     # float32
print(a.nbytes)    # 12  (3 elements x 4 bytes)

b = np.zeros(4, dtype=np.int32)
print(b.dtype)     # int32

np.randomでランダム配列を作成する

ランダムなデータが必要ですか?np.randomで生成できます。最初にシードを設定すると、実行するたびに同じ数値が得られます。再現可能な実験には欠かせません。🎲

import numpy as np

np.random.seed(42)
u = np.random.rand(3, 3)   # uniform [0, 1)
print(u)

n = np.random.randn(5)     # standard normal
print(n.round(2))

配列の形状と次元を確認する

配列を作成したら、通常はshapeを確認します。これは各次元のサイズを表すタプルです。.ndimを使うと、配列の次元数を確認できます。

import numpy as np

a = np.arange(12)
print(a.shape)   # (12,)
print(a.ndim)    # 1

m = a.reshape(3, 4)
print(m.shape)   # (3, 4)
print(m.ndim)    # 2

リストとタプルを変換する

np.array()に渡せるのはリストだけではありません。タプル、range、さらには他の配列も使用できます。ただし、要素数がそろっていないraggedな内側のリストは、NumPyの速度を損なうため避けてください。

import numpy as np

# From tuple
t = np.array((10, 20, 30))
print(t)   # [10 20 30]

# From range
r = np.array(range(5))
print(r)   # [0 1 2 3 4]

# Nested lists -> 2D
m = np.array([[1, 2], [3, 4], [5, 6]])
print(m.shape)  # (3, 2)

初期化されていない配列に使うnp.empty

np.emptyは値を埋めずにメモリだけを確保するため、zerosより少し高速です。ただし、そこには以前のデータが残っています。必ず書き込んでから読み取ってください。

import numpy as np

buf = np.empty(5)
# Values are garbage — do NOT read before writing
for i in range(5):
    buf[i] = i * 2
print(buf)  # [0. 2. 4. 6. 8.]

確認問題

このレッスンで学んだNumPy配列の作成について、理解度を確認しましょう。

レッスンのまとめ

よくできました!np.array()でリストを配列に変換し、zeros、ones、arange、linspaceで配列を一から作成できるようになりました。次は配列の属性です。

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「NumPy配列の作成」レッスンは無料ですか?

はい。「NumPy配列の作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Pandas & NumPy Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Pandas & NumPy Academyコースには全4レッスンが含まれています。

「NumPy配列の作成」で何を学びますか?

np.array、np.zeros、np.ones、np.arangeを使って1次元・2次元配列を作成し、shapeとdtypeを確認します。 ブラウザで直接実行するハンズオンコードでPandas & NumPy Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Pandas & NumPy Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPandas & NumPy Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「NumPy配列の作成」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPandas & NumPy Academyレッスンでコードを書いて実行できますか?

はい。すべてのPandas & NumPy Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. NumPy配列の作成
  2. 配列の属性と確認
  3. 要素単位の算術演算
  4. 配列のスライスとインデックス指定
← Pandas & NumPy Academyに戻る