arrays - Python迭代二维数组,返回数组值
问题描述
我创建了一个 2D 10x10 阵列。使用 Numpy 我想尽可能高效地迭代数组。
但是我想返回数组值。本质上迭代 10x10 数组 10 次,每次返回一个 1x10 数组。
import datetime
import numpy as np
import random
start = datetime.datetime.now()
a = np.random.uniform(low=-1, high=1, size=(10,10))
print("Time :",datetime.datetime.now() - start)
for x in np.nditer(a):
print(x)
结果如下:
0.5738994777717537
0.24988408410910767
0.8391827831682657
0.0015975845830569213
0.54477459840569
0.14091622639476165
-0.36517132895234106
-0.06311125453484467
-0.6572544506539948
...
100 times
但是我希望结果是:
[0.5738994777717537,
0.24988408410910767,
0.8391827831682657,
0.0015975845830569213,
0.54477459840569,
0.14091622639476165,
-0.36517132895234106,
-0.06311125453484467,
-0.6572544506539948],[...]
...
10 times
任何帮助,将不胜感激!
解决方案
要直接回答您的问题,这正是您想要的:
import numpy as np
a = np.random.uniform(low=-1, high=1, size=(10,10))
print(','.join([str(list(x)) for x in a]))
这将打印
[-0.2403881196886386, ... , 0.8518165986395723],[-0.2403881196886386, ... , 0.8518165986395723], ..., [-0.2403881196886386, ... , 0.8518165986395723]
您只打印数组元素的原因是由于工作方式nditer
。nditer
迭代单个元素,即使在多维级别,而您只想迭代数组的第一个维度。为此,for x in a:
按预期工作。
编辑
如果您想了解如何nditer
工作,这是一个很好的链接:https ://docs.scipy.org/doc/numpy/reference/arrays.nditer.html#arrays-nditer
推荐阅读
- r - 如何创建多列索引 DuckDB/SQLite?
- kubernetes - Kubernetes 一次编写,随处部署
- node.js - Mongoose `findOne` 操作在 10000 毫秒后超时
- mysql - 如何在当前日期前 750 天的表格中“插入”日期?
- android - 依赖版本的选择
- html - ngb轮播间隔问题
- video - 将两个 FFMPEG 命令合并/组合成一个命令
- list - 如果产品超过 Julia 的空列表,如何将产品设置为 0?
- reactjs - JWT 检索每个请求或保存在 redux(或等效)存储中
- ethereum - 将新的自定义操作码添加到solidity