我正在编写一个Python脚本,旨在将一大数组数字拆分为相等的子数组。为此,我使用 Numpy 的拆分方法,如下所示:
test=numpy.array_split(raw,nslices)
其中raw是包含所有值的完整数组,顺便说一下,这些值是float64类型。nslices是我想从原始数组创建的子数组的数量。
在脚本中,nslice可能会根据原始数组的大小而有所不同,因此我想"自动"将每个创建的子数组保存在特定数组中: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])
非常感谢您帮助解决此问题!
首先 - 你搞砸了分隔符:) 它应该是反斜杠+nn
而不是/n
。
其次 - 正如 Serge 在评论中已经提到的,您可以按索引访问拆分部分(resultarray[0]
到[2]
(。但是,如果您真的想将每个部分分配给一个单独的变量,则可以以 fomming 方式执行此操作:
result_1_of_3, result_2_of_3, result_3_of_3 = rawslice
print(result_1_of_3, result_2_of_3, result_3_of_3)
但这可能不是你应该走的路。