python-3.x - 自索引numpy数组
问题描述
问题:给定 N,返回一个 NxN 矩阵,其第 i,j 个条目是 (i,j)
我决定使用 numpy 通过创建矩阵来解决这个问题
A= 0, 0, 0
1, 1, 1
2, 2, 2
和
B= 0, 1, 2
0, 1, 2
0, 1, 2
我现在想要一种方法,它采用相同形状的 numpy 数组并返回元素方式的 zip。显然,您可以通过 NxN 上的 for 循环来做到这一点,但 id 宁愿不这样做。这是我的具体问题:是否有一种方法 SomeKindOfZip(,) 以便
SomeKindOfZip(A,B) = (0,0), (0,1), (0,2)
(1,0), (1,1), (1,2)
(2,0), (2,1), (2,2)
解决方案
有多种方式。用于meshgrid
制作 2 数组:
In [20]: I,J=np.meshgrid([0,1,2],[0,1,2,3], indexing='ij')
In [21]: I
Out[21]:
array([[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2]])
In [22]: J
Out[22]:
array([[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]])
并stack
在新的尾轴上加入它们:
In [23]: np.stack((I,J),axis=2)
Out[23]:
array([[[0, 0],
[0, 1],
[0, 2],
[0, 3]],
[[1, 0],
[1, 1],
[1, 2],
[1, 3]],
[[2, 0],
[2, 1],
[2, 2],
[2, 3]]])
您的显示看起来像一个包含元组的 (3,3) 对象 dtype 数组。对象 dtype 数组更像列表而不是数组。我想它也可以是结构化数组。这完全取决于您打算如何使用结果。
推荐阅读
- node.js - 部署 NextJs + ExpressJs + postgreSQL (pgadmin)
- python - 使用来自函数参数的值的 sqlalchemy 的 group_by 和 with_entities 方法
- javascript - 在导出默认值内部和外部创建 Vue 实例属性有什么区别?
- r - foreach 循环不创建变量
- php - MySQL Performance INSERT 或(部分)UPDATE 如果存在,什么是最好的?
- react-router - 单击表单的提交按钮时,链接标记未触发 onSubmit
- performance - 如何为表格数据实施快速梯度符号攻击?
- javascript - 此处映射 API 未在 bootstrap 5 模式中显示
- typescript - 使用动态键和特定键定义接口或类型
- python - 如何验证手机号码是否正确?