python - python,如何从矩阵的每一列中选择元素
问题描述
我需要根据索引向量从矩阵的每一列中提取一个元素。说:
index = [0,1,1]
matrix = [[1,4,7],[2,5,8],[3,6,9]]
索引向量告诉我我需要第 1 列的第一个元素、第 2 列的第二个元素和第 3 列的第三个元素。
输出应该是[1,5,8]
. 如何在没有显式循环的情况下将其写出来?
谢谢
解决方案
您可以使用高级索引:
index = np.array([0,1,2])
matrix = np.array([[1,4,7],[2,5,8],[3,6,9]])
res = matrix[np.arange(matrix.shape[0]), index]
# array([1, 5, 9])
对于您的第二个示例,反转您的索引:
index = np.array([0,1,1])
matrix = np.array([[1,4,7],[2,5,8],[3,6,9]])
res = matrix[index, np.arange(matrix.shape[1])]
# array([1, 5, 8])
推荐阅读
- postgresql - 是否值得并行/并发 INSERT INTO... (SELECT...) 到 Postgres 中的同一张表?
- kubernetes - k8 hpa:如何跨不同部署扩展 pod
- visual-studio - 在 string.Concat() 中使用 LIKE 子句
- reactjs - 如何使用 jest 和 react 测试库测试登录组件
- javascript - 为什么 IsBefore 时刻 js 在应该为真时给了我假
- spring - 创建名为 'org.springframework.aop.config.internalAutoProxyCreator' 的 bean 时出错:bean 的实例化失败
- javascript - 如何在 Lucid 查询生成器 adonis 4.1 中使用 union() 方法?
- testng - 我可以在 TestNG 中重新运行测试类或 xml 测试名称声明吗?
- amazon-web-services - 如何使用图形 api 在 azure 中获取 AppRoleId,角色是从 aws 帐户导入的
- python - request.POST.get 没有得到输入值