numpy.zeros 形状陈述

numpy.zeros shape statement

我在 Python 中看到过这个说法:

np.zeros(1 + X.shape[1])

我理解这是为了创建一个由 here 中的零填充的数组,但无法理解这部分 1 + X.shape[1]

我试过运行这样的小测试:

import numpy as np
X = [[1,2],[3,4]]
m = np.zeros(1 + X.shape[1])
print m

但是,得到以下信息:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    m = np.zeros(1 + X.shape[1])
AttributeError: 'list' object has no attribute 'shape'

这是为什么?怎么才能读懂上面的语句呢?

谢谢。

列表中没有 shape 属性。您应该使用 np.array 来获得形状。

试试这个

import numpy as np
X = np.array([[1,2],[3,4]])
m = np.zeros(1 + X.shape[1])
print m

要使其成为一个 numpy 数组,你应该这样做 X = np.array([[1,2],[3,4]]) 这将是一个 numpy 数组。

并且X.shape将return (2,2)并且X.shape[1]将return 2.

所以 1 + x.shape[1] 将 return 3m = np.zeros(1 + X.shape[1]) m 将具有这样的值 array([ 0., 0., 0.])