python - 如何根据列的排序值中的特定值从numpy数组中的一列中提取数据
问题描述
我正在对一个包含两列的数组进行升序排序,然后根据第一列中大于 x 的值,尝试从另一个变量的第二列中提取值 > x 的数据。
能够排序并找到第 1 列中大于 x 的值,但不能从列中提取大于 x 的值的对应值。
a1 = np.array([130,4,8,0,87,45,24,22])
a2 = np.array([1.5615, 0.4601, 0.4374, 0.0000, 3.9871, -2.3144, -0.3456, 1.5684])
ind = np.lexsort((a2,a1))
[(a1[i],a2[i]) for i in ind]
r = np.array([a1[ind],a2[ind]])
r1 = sorted(x for x in r[0] if x >= 35)
print(r1)
期望 a3 = [-2.3144 3.9871 1.5615] 对于 a2 中的值,基于 a1 [45, 87,130] 中的 x>35
解决方案
r[0]
您可以执行以下操作,而不是访问其中的值:
>>> sorted([a2[ind] for ind in range(len(a1)) if a1[ind] > 35], key=lambda
value: np.where(r[1] == value))
[-2.3144, 3.9871, 1.5615]
这将检查索引处的值,然后按索引所在的位置排序r[1]
推荐阅读
- c# - 为什么 RabbitMQ 连接在 Linux 上失败,但在 Windows 上有效?
- javascript - 将 HTML 转换为 PDFmake 语法
- javascript - How To disable zoom in/out webview but increase font-size on Pinch
- java - 如何从动态 JCheckBox 中获取价值?
- email - DMARC 失败仅适用于linkedin
- css - 如何使用 id 属性以角度导入样式表?
- regex - 如何从php数组中grep值
- java - json parsing with jackson
- window - Click on a specific place on a window, click on a specific button and control if the window changes
- html - How can I write HTML to my v-dialog's v-card component?