如何用数字列表替换满足条件的数组的某些值

时间:2021-05-06 03:38:36

标签: python arrays numpy

我有一个 4x4 numpy 数组(dtype = object),我想用 1-4 的列表替换任何有 0 的地方。我可以用下面的一组 1-4 替换 0,但不是列表,知道为什么以及如何克服这个问题吗?

def replace_zeroes(arr):
    fullSet = {1, 2, 3, 4}
    lst = [1,2,3,4]
    arr_c = arr.copy()
    arr_c = arr_c.astype('object')
    np.place(arr_c, arr_c==0, fullSet)

    return arr_c

附加的是输出,首先表明它可以成功地与集合一起工作,但我不确定它对列表的作用?

此外,通过获取索引然后用列表替换, np.argwhere(arr_c==0) 会以任何方式提供帮助吗?不完全确定如何使用它。

[As can be seen below, it works with a set

It does not work with a list

编辑,原始数组为:

arr = [[1,2,4,0],
       [1,3,1,5],
       [0,3,5,3],
       [1,0,1,0]]
       
arr = np.array(arr)

预期的输出不是一个包含 1,2,3,4 的集合,我想要一个 [1,2,3,4] 的列表,只要是 0。

0 个答案:

没有答案