如果值> = 1,如何用列索引替换nxn数组中的每个值,否则用行索引替换。如果替换后的值映射到其他1d数组并从中返回值,则更好。
value_array = np.array([200, 200, 300, 10])
arr = np.array(
[[1, 1, .66, 20],
[1, 1, .66, 20],
[1.5, 1.5, 1, 30],
[.05, .05, .03, 1]]
)
目标是从value_array获得包含大小的相同大小的数组。例子:
另外,要应用于大型数组(1m x 1m)执行中,需要以某种方式将其拆分为多个部分。
一种使用方式numpy.select
:
conds = [arr>1, arr<1]
target = np.full(arr.shape, value_array)
np.select(conds, [target, target.T], arr)
输出:
array([[ 1., 1., 200., 10.],
[ 1., 1., 200., 10.],
[200., 200., 1., 10.],
[ 10., 10., 10., 1.]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句