我想用数据填充numpy.ndarray(32x32像素整数图片==数组)
从图片文件的名称我知道我的ndarray中我想要存储我的值。
我想给我的ndarray一个列表,但也有一些切片(0),因为图片存储在最后两个维度中。我该怎么做?
我想做点什么
Pesudocode:
data=numpy.ndarray(dim1,dim2,dim3,32,32)
list=function(filename)
data[list,slice(0),slice(0)]=read_image(filename)
这可能吗?
我的列表中有条目指定ndarray [int,int,int]的位置,而我读取的图像是32位32整数数组(填充我的ndarray的最后两个维度)。
答案 0 :(得分:1)
要执行此分配,请在前三个维度中的每个维度中传递合适的数组,并在最后两个维度中传递:
(表示整个索引范围)。
例如,如果您的列表是
list = [[1, 2, 3], [4, 2, 0], [5, 3, 4], [2, 2, 2]]
然后作为第一个索引传递的数组是[1,4,5,2],并且类似地用于另外两个:[2,2,3,2]和[3,0,4,2]。假(随机)图像的完整示例:
data = np.zeros((6, 7, 8, 32, 32))
list = [[1, 2, 3], [4, 2, 0], [5, 3, 4], [2, 2, 2]]
image = np.random.uniform(size=(32, 32))
ix = np.array(list)
data[ix[:, 0], ix[:, 1], ix[:, 2], :, :] = image
此处ix[:, 0]
为[1,4,5,2],ix[:, 1]
为[2, 2, 3, 2]
,依此类推。