我是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
请建议对代码进行更正。
提前谢谢。
答案 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