【发布时间】:2020-02-13 15:19:23
【问题描述】:
我正在编写一个 Python 脚本,旨在将大量数字拆分为相等的子数组。为此,我使用 Numpy 的 split 方法如下:
test=numpy.array_split(raw,nslices)
其中 raw 是包含所有值的完整数组,顺便说一下,它们是 float64 类型的。 nslices 是我想从 raw 数组中创建的子数组的数量。
在脚本中,nslices 可能会根据 raw 数组的大小而有所不同,因此我想“自动”将每个创建的子数组保存在特定的数组为:resultsarray(i),其方式与在 MATLAB/Octave 中制作的方式类似。
我尝试在 Python 中使用for in range 循环,但我只能将最后一个子数组保存在变量中。
从 1 到 nslices 的每个增量保存子数组的正确方法是什么?
到此,完整的代码就到这里了(我是Python初学者,麻烦脚本底层了)。
import numpy as np
file = open("results.txt", "r")
raw = np.loadtxt(fname=file, delimiter="/n", dtype='float64')
nslices = 3
rawslice = np.array_split(raw,nslices)
for i in range(0,len(rawslice)):
resultsarray=(rawslice[i])
print(rawslice[i])
非常感谢您帮助解决这个问题!
【问题讨论】:
-
为什么不直接使用
resultarray = np.array_split(raw, nslices)?你可以在这一步之后使用resultarray[i]...
标签: python arrays for-loop indexing