Python 如何使用矩阵的维数生成for循环

Python 如何使用矩阵的维数生成for循环,python,numpy,Python,Numpy,我有一个叫做数据集的二维数组,它是335x225。我想填充一个新的空数组,称为newDataSet,1-D数组,即1 x 7537。新数据集应从数据集的前7537个数据点开始填充。我该怎么做 我想使用它作为一个for循环,如下所示: for row in trainingData.shape[0] for column in trainingData.shape[1] bin_1 = trainingData[:33,:255] 如果使用numpy,则不需要循环 import

我有一个叫做数据集的二维数组,它是335x225。我想填充一个新的空数组,称为newDataSet,1-D数组,即1 x 7537。新数据集应从数据集的前7537个数据点开始填充。我该怎么做

我想使用它作为一个for循环,如下所示:

for row in trainingData.shape[0]
    for column in trainingData.shape[1]
    bin_1 = trainingData[:33,:255]

如果使用numpy,则不需要循环

import numpy as np    
dataset = np.random.random((335, 225))
首先将
数据集
重新整形为
1x(335*225)
数组,然后从中提取前7537个元素

new_array = dataset.reshape(1, 75375)[:,0:7537]

如果使用numpy,则不需要循环

import numpy as np    
dataset = np.random.random((335, 225))
首先将
数据集
重新整形为
1x(335*225)
数组,然后从中提取前7537个元素

new_array = dataset.reshape(1, 75375)[:,0:7537]

生成子集的一步方法:

subsets=np.split(a.ravel(),range(0,a.size,a.size//10)[1:-1])

In [30]: [len(s) for s in subsets]
Out[30]: [7537, 7537, 7537, 7537, 7537, 7537, 7537, 7537, 7537, 7542]

这些只是视图,因此不会复制数据。对于训练集来说,这通常不是问题。

生成子集的一步方法:

subsets=np.split(a.ravel(),range(0,a.size,a.size//10)[1:-1])

In [30]: [len(s) for s in subsets]
Out[30]: [7537, 7537, 7537, 7537, 7537, 7537, 7537, 7537, 7537, 7542]

这些只是视图,因此不会复制数据。对于训练集来说,这通常不是问题。

7537
75375
7537。我想制作10个由原始数据子集组成的新数组。因此,前9个数组(1-D)将有7537个数据,最后一个数组将有7542个。可能重复的
trainingData.shape[i]
将始终是一个整数,这是不可匹配的。如果您想迭代到该整数,请对
i
的任何值使用
range(trainingData.shape[i])
,但我没有得到这样的结果:您想要一个数组还是数组列表?单个阵列可能会很麻烦,因为数据不完全匹配,需要进行一些对齐。
7537
75375
7537。我想制作10个由原始数据子集组成的新数组。因此,前9个数组(1-D)将有7537个数据,最后一个数组将有7542个。可能重复的
trainingData.shape[i]
将始终是一个整数,这是不可匹配的。如果您想迭代到该整数,请对
i
的任何值使用
range(trainingData.shape[i])
,但我没有得到这样的结果:您想要一个数组还是数组列表?单个阵列可能会很麻烦,因为您需要一些对齐,因为数据不完美。重塑的好主意:)但我不想重用原始数据中的数据点。换句话说,第一个数组应该包含1-7537,第二个数组应该包含7536-15073…等等。因此,将
新建数组=数据集。重塑(175375)[:,0:7537]
仍然有效?使用
数组到数组9=数据集。ravel()[0:7537*9]。重塑((97537))
最后一个数组=数据集。ravel()[7537*9://code>。但是应该有一个更优雅的方法。重塑的好主意:)但我也不想重用原始数据中的数据点。换句话说,第一个数组应该包含1-7537,第二个数组应该包含7536-15073…等等。因此,将
新建数组=数据集。重塑(175375)[:,0:7537]
仍然有效?使用
数组到数组9=数据集。ravel()[0:7537*9]。重塑((97537))
最后一个数组=数据集。ravel()[7537*9://code>。但应该有一种更优雅的方式。