numpy_l = np.array([[1,2,3],[4,5,6]])
# numpy_lの形状を出力
print(numpy_l.shape)
(2, 3)
2行3列であることを表してる.
次元数の確認
# Array[[1,2], [3,4]]の次元数を表示する.
numpy_l = np.array([[1,2], [3,4]])
print(numpy_l.ndim)
2
ndimは次元数なので,len(shape)
に等しい
→つまり、行と列が一つずつカウントされて、2という事→2次元
形状変換
numpy.ndarray.reshape()
を使えば要素を変えない(数字は同じ)まま形状だけを変えられる
numpy_l = np.array([[1,2,3],[4,5,6]])
# numpy_lの形状変換
print(numpy_l.reshape((3,2)))
[[1 2]
[3 4]
[5 6]] 要素を一列に並べて、区切っているイメージ
reshape()
の引数には「-1」を指定することができる.
こうすると他の次元の長さに合わせて自動で形状変換ができる
numpy_l = np.array([1,1,1,2,2,2,3,3,3])
print(numpy_l.reshape(3,-1)) 3列になるように適当に要素を区切っている?
[[1 1 1] [2 2 2] [3 3 3]]
numpy_3 = np.array([[1,1,1],[1,2,2],[2,2,3],[3,3,3]])
print(numpy_3.reshape((3,-1)))
print(numpy_3.reshape((2,-1)))
print(numpy_3.reshape((5,-1)))
[[1 1 1 1] [2 2 2 2] [3 3 3 3]] [[1 1 1 1 2 2] [2 2 3 3 3 3]]
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [8], in <cell line: 4>()
2 print(numpy_3.reshape((3,-1)))
3 print(numpy_3.reshape((2,-1)))
----> 4 print(numpy_3.reshape((5,-1)))
ValueError: cannot reshape array of size 12 into shape (5,newaxis)
要素の数が合わないと、エラーが出る。
コメント