gpt4 book ai didi

Python:按元素比较数组与 float

转载 作者:行者123 更新时间:2023-12-01 04:46:54 25 4
gpt4 key购买 nike

我有一个数组A=[A0,A1],其中A0是一个4x3矩阵,A1是一个3x2矩阵。我想将 A 与 float (例如 1.0)按元素进行比较。预期返回B=(A>1.0)是一个与A大小相同的数组,如何实现呢?

我可以将A复制到C,然后将C中的所有元素重置为1.0,然后进行比较,但我认为python(numpy/scipy)必须有一种更聪明的方法来做到这一点......谢谢。

最佳答案

假设我们有你提到的相同形状的数组:

>>> A=np.array([np.random.random((4,3)), np.random.random((3,2))])
>>> A
array([ array([[ 0.20621572, 0.83799579, 0.11064094],
[ 0.43473089, 0.68767982, 0.36339786],
[ 0.91399729, 0.1408565 , 0.76830952],
[ 0.17096626, 0.49473758, 0.158627 ]]),
array([[ 0.95823229, 0.75178047],
[ 0.25873872, 0.67465796],
[ 0.83685788, 0.21377079]])], dtype=object)

我们可以使用 where 子句测试每个元素:

>>> A[0]>.2
array([[ True, True, False],
[ True, True, True],
[ True, False, True],
[False, True, False]], dtype=bool)

但不是全部:

>>> A>.2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

因此只需重建数组 B:

>>> B=np.array([a>.2 for a in A])
>>> B
array([ array([[ True, True, False],
[ True, True, True],
[ True, False, True],
[False, True, False]], dtype=bool),
array([[ True, True],
[ True, True],
[ True, True]], dtype=bool)], dtype=object)

关于Python:按元素比较数组与 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29224567/

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