次回より『ヒデログ』とご検索ください

【Python入門】3分で分かるNumpyで配列を作る方法

Numpyを使って、配列を作る方法を紹介します。Numpyにはndarrayというオブジェクトが存在し、これにより1次元配列、2次元配列等を作ることができます。ndarray=N-dimensional array

Numpyで1次元配列

Numpyで1次元配列を作る方法を紹介します。

array関数とasarray関数

Numpyでリストから配列を作る方法は2つあります。

import numpy as np

lst=[10,20,30]

arr1=np.array(lst)
arr2=np.asarray(lst)

arr1,arr2
#結果は同じになる
# (array([10,20,30]),array([10,20,30]))

listからNumpy配列を作る場合、arrayとasarrayは全く同じ結果になります。

array関数とasarray関数の違い

リストから配列を作るという意味では読み飛ばしても大丈夫です。arrayとasarrayは一緒です。Numpy配列からNumpy配列を作る場合のみ違いがあります。

import numpy as np

lst=[10,20,30]

arr=np.array(lst)

#Numpy配列をNumpy配列に変換
arr1=np.array(arr)
arr2=np.asarray(arr)

#元のNumpy配列の値を変更
arr[0]=5
arr1,arr2
# (array([10,20,30]),array([5,20,30]))

#変換先のNumpy配列の値を変更
arr1[0]=100
arr
# arrの値は変わらない
# array([10,20,30])

arr2[0]=100
arr
# arrの値が変わる
# array([100,20,30])

このようにNumpy配列をNumpy配列に変換する場合(あまりないかと思いますが)、asarrayはポインタのような動きをして、元のNumpy配列の値が変更されると元の値も変わります。

arange関数

import numpy as np
np.arange(5)
# array([0,1,2,3,4])

zeros関数

import numpy as np
np.zeros(5)
# array([0., 0., 0., 0., 0.])

Numpy.zeros(要素数)
引数&戻り値:要素数の配列を生成し、戻り値とする

zeros_like関数

引数と同じ配列で要素が0になる配列を戻り値となる

import numpy as np
arr1=np.array([[1,2,3],[4,5,6]])
arr2=np.zeros_like(arr1)
# array([[0,0,0],[0,0,0]])

empty関数

空の配列を作る。

import numpy as np
np.empty(5)
# 要素数5個のベクトル
# array([0, 0, 0, 0, 0])
np.empty([2,3])
# 2x3の配列
#array([[0, 0, 0], [0, 0, 0]])

実行結果は全て0でzeros関数と同じですが0であることは保障されていません。

insert関数

import numpy as np

arr=np.arange(3)
arr
# array([0, 1, 2])

arr=np.insert(arr, 2, 10)
arr
# array([ 0, 1, 10, 2])

構文

Numpy.insert(numpay.ndarray,添え字,追加する要素)

  • 第1引数:追加するNumpyの配列
  • 第2引数:追加する場所、以降の要素はずれる
  • 第3引数:追加する要素
  • 戻り値:追加されたNumpy配列

例では要素数の2に10を入れてその後の要素は後ずれしている。

Numpyで2次元配列を作る方法

Numpyで2次元配列を作る方法を紹介します。

import numpy as np
lst=[[1,2,3],[4,5,6]]
mtx=np.array(lst)
mtx
>>array([[1, 2, 3],
       [4, 5, 6]])

#配列の要素を取得
mtx[1][2]
>>6

np.zeros((2,3))
>>array([[0., 0., 0.],
       [0., 0., 0.]])

np.empty((2,3))
#0になっているが保障はされていない
>>array([[0., 0., 0.],
       [0., 0., 0.]])

配列の形状を確認

import numpy as np
lst=[[1,2,3],[4,5,6]]
mtx=np.array(lst)

#配列の次元
mtx.ndim
>>2

#配列の形状(列、行)
mtx.shape
>>(2,3)

まとめ

リストからNumpy配列をリストから作成するときはarray関数またはasarray関数を使用します。これは同じ動きになります。また他にもNumpy配列を作る関数があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です