我现在正在学习Python,而我却在网上找到了这行代码.我不明白这行代码的实际作用.
假设我有这个数组:
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-condition语句.代替该代码,如果编写以下代码:
import numpy as np
x = np.array ([[1,0.5]]
y = x[0 < 1]
print (y)
它将精确返回x是什么(因为零IS小于一).
假设这是一种编写if条件语句的方法,我发现它真的很荒谬,因为我正在将一个数组与一个整数进行比较.
谢谢您的回答!
最佳答案
在Numpy中:
[1,1,2,3,4] < 2
(大致)等同于以下内容:
[x<2 for x in [1,4]]
用于香草Python列表.因此,在两种情况下,结果都是:
[True,True,False,False]
对于其他一些功能,例如加法,乘法等,也是如此.广播实际上是Numpy的主要卖点.
现在,您可以在Numpy中执行的另一项操作是布尔索引,它提供了一系列布尔值,这些布尔值被解释为“是否保持此值Y / N?”.所以:
arr = [1,4]
res = arr[arr<2]
# evaluates to:
=> [1,1]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。