python - Numpy 使用特定的行和列来形成一个新的矩阵
问题描述
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
i = np.array([True, False, True])
j = np.array([True, True, False])
print(a[i, j])
print(a[i, :][:, j])
第一张印刷品:
[1 8]
第二个打印:
[[1 2]
[7 8]]
我想要的是第二个。还有比这更好的方法a[i, :][:, j]
吗?
我觉得这不是正确的方法。
解决方案
指数需要重塑。请参阅纯整数数组索引中的第二个示例
# Either q[i[:, np.newaxis], j] or a[np.ix_(i, j)]
# or a[i[:, None], j]
print(a[np.ix_(i, j)])
推荐阅读
- reactjs - 将服务器端渲染添加到现有的 React 应用程序
- android - Firebase 云消息传递如何在 Android 上运行
- eclipse - Eclipse 的嵌入式 Maven 不接受运行时参数
- sql - 使用游标内的游标进行更新,它显示受影响的行,当我手动尝试时逻辑正在工作
- google-cloud-platform - 为服务帐户设置 IP 限制
- postgresql - REVOKE/GRANT ALL ON FUNCTION 更改了哪些表和列
- rxjs - “BehaviorSubject”类型不存在属性“过滤器”
'。在 rxjs 6 - c++ - 如何在 if 语句中使用 dynamic_cast
- javascript - 使用条码扫描器自动完成搜索
- robotframework - 如何处理从Robotframework弹出的窗口