NumPy:数组方法和函数不起作用

时间:2013-08-31 21:55:45

标签: arrays python-2.7 numpy

我有关于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这样的bult-in函数创建一个数组时,一切都很好

>>> 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

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分: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)