python-3.x - 一维元组到二维numpy数组
问题描述
使用以下条件将元组转换为 Numpy 矩阵:
- 数组的形状应该是
len(tuple)
xlen(tuple)
,即方阵。 - 数组中指定位置的元素
(index of the element in the tuple, the value of the element in the tuple)
应为 1。
例如,我有一个随机元组,如下所示:
# index means row ,value means col
(2,0,1)
我使用两个循环将此元组更改为 Numpy 数组:
def get_np_represent(result):
two_D = []
for row in range(len(result)):
one_D = []
for col in range(len(result)):
if result[row] == col:
one_D.append(1)
else:
one_D.append(0)
two_D.append(one_D)
return np.array(two_D)
输出:
array([[0, 0, 1],
[1, 0, 0],
[0, 1, 0]])
但是我有 10,000,000 个这样的元组,有没有更快的方法?
解决方案
像这样的东西?操作矩阵比 for 循环要快得多。
import numpy as np
t = (2, 0, 1)
x = np.zeros([len(t),len(t)])
for i,v in enumerate(t):
x[i, v] = 1
print(x)
输出:
[[0. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]]
推荐阅读
- reactjs - 如何在 material-ui/pickers 中使用 shouldDisableTime?
- python - 错误:输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值
- html - 在手风琴(ngb-accordion)中单击面板(ngb-panel)时如何防止重新加载ng-template
- python - 如何使用数据框值在 python 中创建 3d 数组?
- android - 如何在清单中添加查询声明以使用相机
- angular - 使用提供者创建另一个提供者
- vega-lite - 在层图中的顶层定义参数会产生重复信号错误
- python - 如何根据熊猫中的时间仅更改某些特定行的日期?
- powershell - 如何在一行的 Windows 批处理文件输出中获取 PowerShell 命令和命令 ECHO 的输出?
- python - 如何禁用菜单“运行代码”和“在终端中运行代码”?