numpy.zeros形状声明

时间:2016-03-09 19:30:26

标签: python arrays numpy shape

我在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'

为什么?我们怎样才能阅读上述陈述?

感谢。

1 个答案:

答案 0 :(得分:2)

列表没有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将返回(2,2)X.shape[1]将返回2

因此1 + x.shape[1]将返回3m = np.zeros(1 + X.shape[1]) m将返回array([ 0., 0., 0.])

之类的值