Python 理解numpy零

Python 理解numpy零,python,numpy,Python,Numpy,我正在处理的文件中有一段代码np.zero(X[-1].shape[0])。这里我知道numpy正在赋值0,但是形状[0]在这里做了什么形状变量是一个看起来像(cols,rows)的元组。这意味着shape[0]指的是X[-1]的列数shape是一个长度等于数组维数的元组。因此,如果你有: >>> a = np.array([[1, 2, 3], [4, 5, 6]]) >>> a.shape (2, 3) shape[0]将引用第一个维度。当您无法理解表达

我正在处理的文件中有一段代码
np.zero(X[-1].shape[0])
。这里我知道
numpy
正在赋值0,但是
形状[0]
在这里做了什么形状变量是一个看起来像
(cols,rows)
的元组。这意味着
shape[0]
指的是
X[-1]
的列数
shape
是一个长度等于数组维数的元组。因此,如果你有:

>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> a.shape
(2, 3)

shape[0]
将引用第一个维度。

当您无法理解表达式时,可以将其分解:

np.zeros(X[-1].shape[0]))
这是对某个东西调用
np.zero

X[-1].shape[0]
X[-1].shape
…正在访问以下内容的第一个元素,
[0]

X[-1].shape[0]
X[-1].shape
…正在访问以下项的
形状
属性:

X[-1]
现在,假设X是多维数组
X[-1]
是该数组的最后一行。这是另一个数组

因此
X[-1].shape
是数组的属性:一个维度序列

因此,如果
X
是一个3x3x3数组,那么
X[-1]
将是一个3x3数组,因此
X[-1]。形状
将是
(3,3)

X[-1]。形状[0]
只是第一个维度:
3


因此,我们正在创建一个一维零数组,其大小是
X

行的第一个维度。看起来
X
很可能是一个列表或数组,因此取
X[-1]
返回最后一个元素,该元素必须是一个数组或一个片段。然后获取该数组或切片的形状,并返回第一个维度的长度。例如,如果您有一个数组列表:

>>> X = [ np.array([1,2,3]), np.array([[4,5,6],[7,8,9]]), np.array([10,11]) ]
>>> X[-1]
np.array([10., 11.])
>>> X[-1].shape
(2,)
>>> X[-1].shape[0]
2
>>> np.zeros(X[1].shape[0])
array([ 0.,  0.])
如果
X
只是一个numpy数组,那么最后一个元素将是一个切片:

>>> X = np.arange(27).reshape(3,3,3)
>>> X[-1]
array([[18, 19, 20],
       [21, 22, 23],
       [24, 25, 26]])
>>> X[-1].shape
(3, 3)
>>> X[1].shape[0]
3
>>> np.zeros(X[1].shape[0])
array([ 0.,  0.,  0.])

请指定
X的值