Arrays 列表的Numpy数组
我想创建一个Numpy数组,它包含两个(Python-)列表。当我试图将一个元素附加到其中一个列表时,代码崩溃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) 令人困惑的是,当我取消注释第
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
默认创建多维数组。创建对象数据类型是第二类备份选择。使用普通列表可能更好,甚至更快。