Python Numpy如何高效地更改值

Python Numpy如何高效地更改值,python,arrays,image,numpy,Python,Arrays,Image,Numpy,在我的程序中,我创建了一个充满零的numpy数组,然后通过每个元素进行for循环,用所需的值替换它。有没有更有效的方法 下面是我正在做的一个例子,但是,我有一个需要放入numpy数组的每一行的列表,而不是int。有没有一种方法可以替换整行,这样更有效 import numpy as np from tifffile import imsave image = np.zeros((5, 2160, 2560), 'uint16') num =0 for pixel in np.nditer(i

在我的程序中,我创建了一个充满零的numpy数组,然后通过每个元素进行for循环,用所需的值替换它。有没有更有效的方法

下面是我正在做的一个例子,但是,我有一个需要放入numpy数组的每一行的列表,而不是int。有没有一种方法可以替换整行,这样更有效

import numpy as np
from tifffile import imsave

image = np.zeros((5, 2160, 2560), 'uint16')

num =0
for pixel in np.nditer(image, op_flags=['readwrite']):
     pixel = num
     num += 1
imsave('multipage.tif', image)

您只需生成一个长度为5*2160*2560的向量,并将其应用于图像

image=np.arange(5*2160*2560)
image.shape=5,2160,-1

只需使用切片将其分配给整行

import numpy as np
from tifffile import imsave

list_of_rows = ... # all items in list should have same length
image = np.zeros((len(list_of_rows),'uint16')

for row_idx, row in enumerate(list_of_rows):
    image[row_idx, :] = row

imsave('multipage.tif', image)

Numpy切片功能非常强大,非常漂亮。我建议通读一遍,了解可能的情况。

您只是想创建一个值不断增加的数组吗?或者您是否有更改像素值的特定条件?@IRenemeanspace我有来自另一个图像的压缩数据,该图像存储在表示要放入numpy数组的行的列表中。