【问题标题】:numpy.zeros shape statement [duplicate]numpy.zeros 形状语句 [重复]
【发布时间】:2016-06-24 09:03:13
【问题描述】:

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

这是为什么呢?我们如何阅读上面的声明?

谢谢。

【问题讨论】:

  • x 应该是一个 numpy 数组,而不是一个列表。
  • 如果你想访问它的形状,你需要将 X 设为一个 numpy 数组,而不是一个列表。试试X = np.array([[1,2],[3,4]])。

标签: python arrays numpy shape


【解决方案1】:

列表没有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] 将返回3 和m = np.zeros(1 + X.shape[1]) m 将具有这样的值array([ 0., 0., 0.])

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2022-01-17
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多