Arrays 列表的Numpy数组

Arrays 列表的Numpy数组,arrays,list,python-3.x,numpy,append,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) 令人困惑的是,当我取消注释第

我想创建一个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'
文件“test.py”,第10行,在
数组0[0]。追加(3)
AttributeError:'numpy.ndarray'对象没有属性'append'

我在python 3.5.1和numpy 1.10.4上运行,使用numpy的堆栈函数怎么样?您可以使用
vstack
(垂直堆栈)和
hstack
(水平堆栈)将列表/数组附加在一起。然后还可以继续将更多列表/数组堆叠到新创建的堆栈上。下面我举三个例子

Python(保存在文件堆栈阵列中)

输出

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

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

Python(保存在文件堆栈阵列中)

输出

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

这两个列表的大小相同,这就是它成为2d np数组的原因

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

我建议您使用列表的np数组,如图所示


祝你好运;)

这两个列表的大小相同,这就是它成为2d np数组的原因

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

我建议您使用列表的np数组,如图所示


祝你好运;)

我刚刚发现
np.array(((0,0,0),(1,1,1))
试图创建一个2d数组。如果两个列表(例如
(0,0,0)
(1,1,1)
)的大小不同(例如
(0,0)
(1,1,1)
),则不会发生这种情况。使用两个空列表初始化数组的一种方法是写入
array0=np.empty(2,dtype=np.object)
array0[:]=[],[],[]
是,
np.array
默认创建多维数组。创建对象数据类型是第二类备份选择。使用普通列表可能更好,甚至更快。我刚刚发现
np.array(((0,0,0),(1,1,1))
尝试创建一个2d数组。如果两个列表(例如
(0,0,0)
(1,1,1)
)的大小不同(例如
(0,0)
(1,1,1)
),则不会发生这种情况。使用两个空列表初始化数组的一种方法是写入
array0=np.empty(2,dtype=np.object)
array0[:]=[],[],[]
是,
np.array
默认创建多维数组。创建对象数据类型是第二类备份选择。使用普通列表可能更好,甚至更快。