webdevqa.jp.net

派手な配列次元

私は現在NumpyとPythonを勉強しようとしています。次の配列があるとします。

import numpy as np
a = np.array([[1,2],[1,2]])

aの次元を返す関数はありますか(例えば、aは2 x 2の配列です)?

size()は4を返しますが、それはあまり役に立ちません。

318
morgan freeman

.shape :です。

ndarray. shape
配列次元のタプル.

したがって:

>>> a.shape
(2, 2)
431
Felix Kling

最初:

慣例により、Pythonの世界では、numpyのショートカットはnpなので、

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4]])

秒:

Numpyでは、 次元 軸/軸 形状 は関連しており、時には似たような概念です。

寸法

Mathematics/Physicsでは、次元または次元は空間内の任意の点を指定するのに必要な最小座標数として非公式に定義されます。しかし、Numpyでは、 numpyのドキュメント によれば、それはaxis/axesと同じです。

Numpyでは次元は軸と呼ばれます。軸の数はrankです。

In [3]: a.ndim  # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2

numpyでarrayをインデックスするn座標多次元配列は、軸ごとに1つのインデックスを持つことができます。

In [4]: a[1,0]  # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3  # which results in 3 (locate at the row 1 and column 0, 0-based index)

形状

利用可能な各軸に沿っていくつのデータ(または範囲)を記述します。

In [5]: a.shape
Out[5]: (2, 2)  # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
54
YaOzI
import numpy as np   
>>> np.shape(a)
(2,2)

入力がでこぼこの配列ではなくリストのリストである場合にも機能

>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)

またはタプルのタプル

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
44
user4421975

あなたは使用することができます。

In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3
12
Rhuan Caetano

shapeメソッドはaがNumpyのndarrayであることを要求します。しかし、Numpyは純粋なPythonオブジェクトのイテラブルの形を計算することもできます。

np.shape([[1,2],[1,2]])
6
aph

寸法に.ndimを、正確な寸法を知るために.shapeを使うことができます。

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])

var.ndim
# displays 2

var.shape
# display 6, 2

.reshape関数を使って次元を変更することができます

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)

var.ndim
#display 2

var.shape
#display 3, 4
5
Daksh

Numpy配列の.shape属性を使用してください。各次元に直接アクセスするには、.shape [i]を使用してください。

たとえば、次のように書きます。

a = np.array([[11,12],[21,22],[31,32]])
print(a)
print("Shape: " + str(a.shape))
print("Shape (raws): " + str(a.shape[0]))
print("Shape (columns): " + str(a.shape[1]))

あなたが得るでしょう:

[[11 12]
 [21 22]
 [31 32]]
Shape: (3, 2)
Shape (raws): 3
Shape (columns): 2
0
efdummy