python - 矩阵的 xy 坐标列表
问题描述
我有一个包含 x,y 坐标对的元组列表。我希望将列表转换为矩阵,其中 xy 坐标使用 numpy 表示矩阵的索引,而不使用循环。
对于列表中存在的任何 xy 坐标,在相应的索引位置具有 1,对于列表中不存在的任何值,具有 0。
原始清单:
a = [(0,0),(0,2),(0,3),(0,4),
(1,1),(1,2),(1,4),(2,2),
(3,2),(3,4), (4,4)]
a
期望的输出:维度数组(5,5)
[
[1, 1, 0, 1, 1],
[1, 0, 0, 0, 0],
[1, 1, 1, 1, 0],
[0, 1, 0, 0, 0],
[1, 0, 0, 0, 0]
]
类似于python - numpy 从索引列表创建 2D 掩码 + 然后从掩码数组中绘制 - 堆栈内存溢出但不使用 scipy。
解决方案
使用numpy.add.at
和numpy.rot90
:
import numpy as np
res = np.zeros((5,5))
np.add.at(res, tuple(zip(*a)), 1)
np.rot90(res)
array([[1., 1., 0., 1., 1.],
[1., 0., 0., 0., 0.],
[1., 1., 1., 1., 0.],
[0., 1., 0., 0., 0.],
[1., 0., 0., 0., 0.]])
推荐阅读
- python - 在python中计算NxN矩阵的熵
- windows - Apache webdav 登录适用于浏览器,但 net use 命令/窗口资源管理器出错
- javascript - javascript中1到100个随机10个数字的最佳方法没有欺骗?
- nginx - Nginx block all traffic except URL with specific format
- django - 唯一约束失败:accounts_user.username
- c# - 使用 Microsoft.Azure.Storage.Common 9.4.0.2-preview 测试 Azure 表存储
- javascript - Facebook 在网站中分享(从文本框中获取价值)
- c# - 用户对话逻辑问题
- html - 如何设置带有背景图像的电子邮件标题?
- d3.js - D3 - 轴仅显示 0-1 的值