【问题标题】:NumPy : array methods and functions not workingNumPy:数组方法和函数不起作用
【发布时间】:2013-08-31 21:55:44
【问题描述】:

我对 NumPy 数组有疑问。

我无法使用 .T 之类的数组方法或 numpy.concatenate 之类的函数来处理我创建的数组:

>>> a=np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a.T
array([1, 2, 3])
>>> np.concatenate((a,a),axis=0)
array([1, 2, 3, 1, 2, 3])
>>> np.concatenate((a,a),axis=1)
array([1, 2, 3, 1, 2, 3])
>>>

但是,当我使用 rand 等内置函数创建数组时,一切都很好

>>> a=np.random.rand(1,4)
>>> a.T
array([[ 0.75973189],
       [ 0.23873578],
       [ 0.6422108 ],
       [ 0.47079987]])
>>> np.concatenate((a,a),axis=0)
array([[ 0.92191111,  0.50662157,  0.75663621,  0.65802565],
       [ 0.92191111,  0.50662157,  0.75663621,  0.65802565]])

你认为它与元素类型有关吗(int32 vs float64)?

我在 Windows 7 上运行 python 2.7

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: arrays python-2.7 numpy


    【解决方案1】:

    试试:

    a = np.random.rand(4)
    

    然后我想你会发现它的工作原理是一样的。

    一般来说,对于 numpy,您确实需要注意数组的形状和轴。 (4,)(4,1)(1,4) 形状各不相同,并且在大多数情况下表现不同。

    例如:

    a = np.random.rand(4)
    print a.shape, a.T.shape  # (4,) (4,)
    
    b = np.random.rand(1,4)
    print b.shape, b.T.shape  # (1,4) (4,1)
    

    【讨论】:

    • 我明白了...但是我应该如何使用我想要的值创建一个 1x4 数组,以便我能够使用方法和函数?
    • 好的我找到了...我必须使用 ndmin=2 参数
    • 如果你想使用ndmin,你可以,但对我来说,明确说明数组的维度似乎是一个更好的主意,但要意识到一维数组与二维数组不同,即使只有一行或一列。
    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多