gpt4 book ai didi

python - 按值和位置替换 Numpy 数组中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:59 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序将从 numpy 数组中创建轮廓数据,并尽量避免调用 matplotlib。

我有一个长度为 L 的数组,其中包含 NxN 个 bool 数组。我想将其转换为 LxNxN 数组,例如,第一个内部数组中的“True”被替换为“red”,第二个被替换为“blue”等等。

以下代码按预期工作:

import numpy as np
import pdb

def new_layer(N,p):
return np.random.choice(a=[False,True],size=(N,N),p=[p,1-p])

a = np.array([new_layer(3,0.5),new_layer(3,0.5),new_layer(3,0.5)]).astype('object')

colors = np.array(["red","green","blue"])

for i in range(np.shape(a)[0]):
b = a[i]
b[np.where(b==True)] = colors[i]
a[i] = b
print(a)

但我想知道是否有一种方法可以使用 Numpy 的内置工具(例如索引)来完成相同的任务。我是 Numpy 的新手,我怀疑有更好的方法可以做到这一点,但我想不出它会是什么。谢谢。

最佳答案

你可以使用np.copyto:

np.copyto(a, colors[:, None, None], where=a.astype(bool))

关于python - 按值和位置替换 Numpy 数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52652572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com