Numpy数组列表

时间:2016-04-13 08:32:52

标签: arrays list python-3.x numpy append

我想创建一个Numpy数组,其中包含两个(Python-)列表。当我尝试将一个元素附加到其中一个列表时,代码崩溃了。

import numpy as np
list0 = [0,0,0]
list1 = [1,1,1]
#list1.append(0)
print(type(list0))
print(type(list1))
array0 = np.array((list0, list1))
array0[0].append(42)
print(array0)    

令人困惑的是,当我取消注释第4行时,代码工作正常。

我收到错误消息:

File "test.py", line 10, in <module>
array0[0].append(3)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

我运行python 3.5.1和numpy 1.10.4

2 个答案:

答案 0 :(得分:0)

如何使用numpy的堆栈功能?您可以使用vstack(垂直堆栈)和hstack(水平堆栈)将列表/数组附加在一起。然后,您还可以继续将更多列表/数组堆叠到新创建的堆栈上。我在下面给出三个例子。

Python(保存在文件stackingArrays中)

import numpy as np

list0 = [0,0,0]
list1 = [1,1,1]

# stack vertically
array_v=np.vstack((list0,list1))
print array_v

# stack horizontally
array_h=np.hstack((list0,list1))
print array_h

# stack more on to stacked array
array_v2=np.vstack((array_v,list1))
print array_v2

<强>输出

> python -i stackingArrays.py
>>> [[0 0 0]
    [1 1 1]]
>>> [0 0 0 1 1 1]
>>> [[0 0 0]
    [1 1 1]
    [1 1 1]]

答案 1 :(得分:0)

列表具有相同的大小,这就是为什么它成为2d np数组的原因。

因此,您试图将一个值附加到np数组的行之一(您不能这样做,因为它不再是列表)。

我建议您使用np个列表数组,如here所示。

祝你好运;)

相关问题