如何初始化numpy数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (80)

是否有方法初始化形状的numpy数组并添加到其中?我会用一个例子来解释我需要什么。如果我想创建一个循环中生成的对象列表,我可以这样做:

a = []
for i in range(5):
    a.append(i)

我想用Numpy数组做类似的事情。我知道v堆栈,级联等等。然而,这些需要两个numpy数组作为输入。我需要的是:

big_array # Initially empty. This is where I don't know what to specify
for i in range(5):
    array i of shape = (2,4) created.
    add to big_array

big_array应该有一个形状(10,4)...。怎么做?

提问于
用户回答回答于

numpy.zeros返回一个给定形状和类型的新数组,其中填充了零。

numpy.ones返回一个给定形状和类型的新数组,其中充满了形状和类型。

numpy.empty返回给定形状和类型的新数组,而不初始化条目。

用户回答回答于

我通常这样做的方法是创建一个常规列表,然后将我的内容附加到其中,最后将列表转换为numpy数组,如下所示:

import numpy as np
big_array = [] #  empty regular list
for i in range(5):
    arr = i*np.ones((2,4)) # for instance
    big_array.append(arr)
big_np_array = np.array(big_array)  # transformed to a numpy array

当然,在创建步骤中,最后一个对象占用内存中空间的两倍,但是在python列表上追加空间非常快,而且使用np.Array()创建也非常快。

扫码关注云+社区