Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy数组的numpy数组_Python_Arrays_Numpy - Fatal编程技术网

Python numpy数组的numpy数组

Python numpy数组的numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我在创建numpy数组的numpy数组时遇到了一个问题。 我将在循环中创建它: a=np.array([]) while(...): ... b= //a numpy array generated a=np.append(a,b) ... 预期结果: [[1,5,3], [9,10,1], ..., [4,8,6]] 实际结果: [1,5,3,9,10,1,... 4,8,6] 可能吗?我不知道数组的最终维度,因此无法使用固定维度初始化它 不要在循环中附加到num

我在创建numpy数组的numpy数组时遇到了一个问题。 我将在循环中创建它:

a=np.array([])
while(...):
   ...
   b= //a numpy array generated
   a=np.append(a,b)
   ...
预期结果:

[[1,5,3], [9,10,1], ..., [4,8,6]]
实际结果:

[1,5,3,9,10,1,... 4,8,6]

可能吗?我不知道数组的最终维度,因此无法使用固定维度初始化它

不要在循环中附加到
numpy
数组中:与基本Python相比,numpy在这一操作上非常差。这是因为您正在为每个
append
创建数据的完整副本,这将花费您的时间

相反,只需将数组附加到Python列表中,并在末尾进行转换;结果更简单、更快:

a = []

while ...:
    b = ... # NumPy array
    a.append(b)
a = np.asarray(a)
至于你的代码为什么不工作:
np.append
的行为根本不像
list.append
。特别是,它在追加时不会创建新标注。您必须创建具有两个维度的初始数组,然后附加一个显式轴参数

我们也可以试试:

arr1 = np.arange(4)
arr2 = np.arange(5,7)
arr3 = np.arange(7,12)

array_of_arrays = np.array([arr1, arr2, arr3])
array_of_arrays
np.concatenate(array_of_arrays)

谢谢你的回复。最大的问题是我需要大约100个数组,每个数组都有一个非常大的维数,每个数组里面有1440000个整数。我的程序被操作系统杀死了。有什么建议吗?你能猜出你将拥有多少元素,并预先分配一个足够大的数组吗?如果不是的话,你可能需要变得非常聪明,比如在块中构建输出数组或其他东西。你还应该能够使用更大的数组进行预分配,然后在知道实际存在多少元素后,在最后使用该数组的视图。最后,我按照你的建议做了!谢谢是的,关键是每个内部数组都应该是numpy not list,因为这样可以节省所有空间。然后从数组列表中创建一个数组。