了解numpy零

时间:2018-07-30 17:03:56

标签: python numpy

我正在检查np.zeros(X[-1].shape[0]))的文件中有一段代码。在这里,我知道numpy分配了0,但是shape[0]在这里做什么

4 个答案:

答案 0 :(得分:2)

shape是一个元组,其长度等于数组的维数。因此,如果您有:

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

shape[0]是第一个维度。

答案 1 :(得分:1)

似乎var abc = MyFunction('abc') abc() // should return 'a' on this first call abc() // should return 'b' on this second call abc() // should return 'c' on this third call abc() // should return 'a' again on this fourth call 可能是列表或数组,因此使用X会返回最后一个元素,该元素必须是一个数组或1的切片。然后获取该数组或切片的形状,并返回第一维的长度。例如,如果您有一个数组列表:

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.]) 仅仅是一个numpy数组,那么最后一个元素将是一个切片:

X

答案 2 :(得分:0)

当您无法理解表达式时,有助于将其分解:

np.zeros(X[-1].shape[0]))

这是在某事上呼叫np.zeros

X[-1].shape[0]

…正在访问第一个元素[0]

X[-1].shape

…正在访问shape属性,

X[-1]

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

所以X[-1].shape是数组的shape属性:维的序列。

因此,如果X是3x3x3数组,那么X[-1]将是3x3数组,因此X[-1].shape将是(3, 3)

X[-1].shape[0]只是第一个维度:3

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

答案 3 :(得分:-1)

shape变量是一个看起来像(cols, rows)的元组。这意味着shape[0]是指X[-1]的列数。