gpt4 book ai didi

python - numpy数组中小于(<)运算符的作用是什么?

转载 作者:行者123 更新时间:2023-11-28 17:01:30 29 4
gpt4 key购买 nike

我现在正在学习 Python,我被我在 Internet 上找到的这行代码困住了。我不明白这行代码实际上做了什么。

假设我有这个数组:

import numpy as np
x = np.array ([[1,5],[8,1],[10,0.5]]
y = x[np.sqrt(x[:,0]**2+x[:,1]**2) < 1]
print (y)

结果是一个空数组。我想知道的是 y 实际上做了什么?我以前从未遇到过这种代码。方括号好像是 if-conditional 语句。而不是那段代码,如果写这行代码:

import numpy as np
x = np.array ([[1,5],[8,1],[10,0.5]]
y = x[0 < 1]
print (y)

它将准确返回 x 的值(因为零小于一)。
假设它是一种编写 if-conditional 语句的方法,我发现它真的很荒谬,因为我正在将一个数组与一个整数进行比较。
谢谢您的回答!

最佳答案

在 Numpy 中:

[1,1,2,3,4] < 2

(非常粗略地)等同于:

[x<2 for x in [1,1,2,3,4]]

用于 Vanilla Python 列表。因此,在这两种情况下,结果都是:

[True, True, False, False, False]

其他一些函数也是如此,比如加法、乘法等。广播实际上是 Numpy 的一个主要卖点。

现在,您可以在 Numpy 中做的另一件事是 bool 索引,它提供了一个 bool 值数组,这些值被解释为“保持此值 Y/N?”。所以:

arr = [1,1,2,3,4]
res = arr[arr<2]

# evaluates to:
=> [1,1]

关于python - numpy数组中小于(<)运算符的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131358/

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