gpt4 book ai didi

python - 根据其他数组的阈值创建新的 2d numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:16 25 4
gpt4 key购买 nike

我有 3 个二维数组,我想用它们来初始化一个新的二维数组。新的二维数组应该在位置 (x,y) 中填充 0 或 1,具体取决于其他 3 个数组的 (x,y) 位置中的值。

例如,我有这 3 个二维数组:

A = [[2, 3, 6],    B = [[5, 9, 0],    C = [[2, 7, 6],
[9, 8, 3], [2, 4, 3], [2, 1, 6],
[1, 0, 5]] [4, 5, 1]] [4, 6, 8]]

还有一个逻辑函数:

D = (A > 4 && B < 5 && C > 5)

这应该创建二维数组:

D = [[0, 0, 1], 
[0, 0, 0],
[0, 0, 1]]

现在我可以用 2 个 for 循环来做到这一点,但我想知道是否有更快的 numpy 方法?

编辑:

这是我的真实代码示例:

val_max = 10000
a = np.asarray(array_a)
b = np.asarray(array_b)
d = ((a >= val_max) and (b >= val_max)).astype(int)

但是我得到这个错误:

Traceback (most recent call last):
File "analyze.py", line 70, in <module>
d = ((a >= val_max) and (b >= val_max)).astype(int)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

EDIT2:

我应该使用 & 运算符而不是 and(类似于 '|' 与 or)

最佳答案

给定 A、B 和 C,您只需将它们转换为 numpy 数组并使用以下方法计算 D:

import numpy as np

A = np.asarray(A)
B = np.asarray(B)
C = np.asarray(C)

D = ((A > 4) & (B < 5) & (C > 5)).astype(int)

关于python - 根据其他数组的阈值创建新的 2d numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312927/

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