声明具有未知大小的2D numpy数组

时间:2014-01-24 19:21:41

标签: python numpy multidimensional-array

我是numpy的新人。我试图定义一个2-d numpy数组来读取图像,其大小各不相同。所以,我不能预定义数组的大小。我的代码是

np.ndarray(np.float64) I
for i in range(len(filename)):
    I=imread(filename)     //reading an image here
    I1=I.resize(256,256)   //resizing the image

请建议对代码进行更正。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果您事前不知道大小,则不要使用numpy数组来累积值。使用灵活的容器(例如list),然后转换为numpy数组。

如果你正在处理一些非常大的东西,那么numpy.fromiter也会表现得更有效率,但是你必须跳过几个圈来与> 1D阵列一起使用它。

作为第一个建议的一个例子,假设我们正在创建一个总是有10列的数组,但是我们无法知道有多少行。我们将使用列表来存储每一行​​,然后在最后转换为2D数组:

import numpy as np

data = []

random_val = 1
while random_val > 0.05:
    data.append(np.arange(10))
    random_val = np.random.random()

data = np.array(data)
print data.shape