替换Numpy数组列表中的值

时间:2017-09-21 03:08:18

标签: python numpy

让我们说我有一个不同形状的Numpy数组列表,需要用1替换所有255的值。

A = np.array([[0,255], [0,0]])
B = np.array([[0, 255,255], [255,0,0]])
list_of_array = [A, B]  # list could have many more arrays

np.place()X[X == 255] = 1等方法不适用于列表。

2 个答案:

答案 0 :(得分:2)

如果你必须有一个数组列表,并希望修改这些数组中的值而不是创建新数组,那么你可以通过迭代列表来完成它。

import numpy as np

A = np.array([[0,255], [0,0]])
B = np.array([[0, 255,255], [255,0,0]])
list_of_array = [A, B]  # list could have many more arrays

for array in list_of_array:
    array[array == 255] = 1

答案 1 :(得分:1)

您可以在列表推导中使用np.where来创建修改后的数组的新列表:

updated_arrays = [np.where(a == 255, 1, a) for a in list_of_array]