gpt4 book ai didi

基于值选择数组元素的 Pythonic 方法?

转载 作者:行者123 更新时间:2023-12-01 22:21:30 25 4
gpt4 key购买 nike

我正在寻找一种Pythonic(1行)方法来从数组中提取一系列值下面是一些示例代码,将从 x,y 数据中提取 >2 和 <8 的数组元素,并将它们放入一个新数组中。有没有办法在一行中完成此任务?下面的代码可以工作,但看起来比它需要的更困惑。 (请注意,我实际上在应用程序中使用 float )

import numpy as np

x0 = np.array([0,3,9,8,3,4,5])
y0 = np.array([2,3,5,7,8,1,0])

x1 = x0[x0>2]
y1 = y0[x0>2]
x2 = x1[x1<8]
y2 = y1[x1<8]

print x2, y2

这会打印

[3 3 4 5] [3 8 1 0]

问题的 (b) 部分是提取值 1 < x < 3 7 < x < 9以及相应的y值。

最佳答案

您可以使用 & 将 bool 数组链接在一起对于元素而言 logical and|对于元素而言 logical or ,这样条件 2 < x0x0 < 8变成

mask = (2 < x0) & (x0 < 8)
<小时/>

例如,

import numpy as np

x0 = np.array([0,3,9,8,3,4,5])
y0 = np.array([2,3,5,7,8,1,0])

mask = (2 < x0) & (x0 < 8)
x2 = x0[mask]
y2 = y0[mask]
print(x2, y2)
# (array([3, 3, 4, 5]), array([3, 8, 1, 0]))

mask2 = ((1 < x0) & (x0 < 3)) | ((7 < x0) & (x0 < 9))
x3 = x0[mask2]
y3 = y0[mask2]
print(x3, y3)
# (array([8]), array([7]))

关于基于值选择数组元素的 Pythonic 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140380/

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