Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy数组[?5]到带有[?5]的五个数组_Python_Arrays_Numpy - Fatal编程技术网

Python Numpy数组[?5]到带有[?5]的五个数组

Python Numpy数组[?5]到带有[?5]的五个数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个[?5]数组:(?=3) 我希望有5个(行的#)独立数组(?5),如下所示: [array([[ 0, 1, 2, 3, 4], [25, 26, 27, 28, 29], [50, 51, 52, 53, 54]]), array([[ 5, 6, 7, 8, 9], [30, 31, 32, 33, 34], [55, 56, 57, 58, 59]]), array([[10, 11, 12, 13, 14], [35, 36,

我有一个[?5]数组:(?=3)

我希望有5个(行的#)独立数组(?5),如下所示:

[array([[ 0,  1,  2,  3,  4],
   [25, 26, 27, 28, 29],
   [50, 51, 52, 53, 54]]), 
 array([[ 5,  6,  7,  8,  9],
   [30, 31, 32, 33, 34],
   [55, 56, 57, 58, 59]]), 
 array([[10, 11, 12, 13, 14],
   [35, 36, 37, 38, 39],
   [60, 61, 62, 63, 64]]), 
 array([[15, 16, 17, 18, 19],
   [40, 41, 42, 43, 44],
   [65, 66, 67, 68, 69]]), 
 array([[20, 21, 22, 23, 24],
   [45, 46, 47, 48, 49],
   [70, 71, 72, 73, 74]])]

这是一种简单的最好是一个/两个numpy的操作方式吗

是的,有:
numpy.transpose
。您可以在三维结构的轴上选择任意序列

import numpy as np

aaa=np.array([[[ 0 , 1,  2,  3,  4],
 [ 5,  6,  7,  8,  9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24]],
[[25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34],
 [35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44],
 [45, 46, 47, 48, 49]],
[[50, 51, 52, 53, 54],
 [55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64],
 [65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]])

bb= np.transpose(aaa,axes=[1,0,2])
print bb
输出:

[[[ 0  1  2  3  4]
  [25 26 27 28 29]
  [50 51 52 53 54]]

 [[ 5  6  7  8  9]
  [30 31 32 33 34]
  [55 56 57 58 59]]

 [[10 11 12 13 14]
  [35 36 37 38 39]
  [60 61 62 63 64]]

 [[15 16 17 18 19]
  [40 41 42 43 44]
  [65 66 67 68 69]]

 [[20 21 22 23 24]
  [45 46 47 48 49]
  [70 71 72 73 74]]].
要访问子阵列,只需使用如下索引:

 c= b[0]
 print c
输出:

 [[ 0  1  2  3  4]
 [25 26 27 28 29]
 [50 51 52 53 54]]

是的,有:
numpy.transpose
。您可以在三维结构的轴上选择任意序列

import numpy as np

aaa=np.array([[[ 0 , 1,  2,  3,  4],
 [ 5,  6,  7,  8,  9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24]],
[[25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34],
 [35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44],
 [45, 46, 47, 48, 49]],
[[50, 51, 52, 53, 54],
 [55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64],
 [65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]])

bb= np.transpose(aaa,axes=[1,0,2])
print bb
输出:

[[[ 0  1  2  3  4]
  [25 26 27 28 29]
  [50 51 52 53 54]]

 [[ 5  6  7  8  9]
  [30 31 32 33 34]
  [55 56 57 58 59]]

 [[10 11 12 13 14]
  [35 36 37 38 39]
  [60 61 62 63 64]]

 [[15 16 17 18 19]
  [40 41 42 43 44]
  [65 66 67 68 69]]

 [[20 21 22 23 24]
  [45 46 47 48 49]
  [70 71 72 73 74]]].
要访问子阵列,只需使用如下索引:

 c= b[0]
 print c
输出:

 [[ 0  1  2  3  4]
 [25 26 27 28 29]
 [50 51 52 53 54]]

仅提出一个替代方案,是
np的另一个替代方案。仅涉及一对轴时进行转置

a, b, c, d, e = arr.swapaxes(0, 1) # swap axes 0, 1

swapax
将始终返回数组视图,其结果与@roadrunner66提出的
np.transpose
相同。它通常比
transpose
快得多,并且在
numpy
的代码中大量使用,以将重要维度放在前面。

仅提出一个替代解决方案,是
np的另一个替代方案。当只涉及一对轴时,transpose

a, b, c, d, e = arr.swapaxes(0, 1) # swap axes 0, 1

swapax
将始终返回数组视图,其结果与@roadrunner66提出的
np.transpose
相同。它通常比
转置
快得多,并且在
numpy
的代码中大量使用,将重要维度放在前面。

谢谢!那么,我应该应用split来获得五个数组吗?我能一次完成吗?不需要拆分。要访问这五个子数组,只需使用索引:
print b[0]
print b[1]
等,或者重新分配到您喜欢的任何位置:
c1=b[0]
等。@SungKim此外,您还可以编写
a,b,c,d,e=np.transpose(aaa,axes=(1,0,2))
。谢谢!那么,我应该应用split来获得五个数组吗?我能一次完成吗?不需要拆分。要访问这五个子数组,只需使用索引:
print b[0]
print b[1]
等,或者重新分配到您喜欢的任何位置:
c1=b[0]
等@SungKim此外,您可以只编写
a,b,c,d,e=np.transpose(aaa,axes=(1,0,2))
。我建议将问题重命名为
Numpy数组[35][5 3 5]
…到5倍[3 5]
使其对其他人更有用。显然,对于每个第一次查看多维数据的人来说,
转置
这个词并不明显,所以这就是保留这个问题的价值所在。否则,我确信这将与其他现有的
转置
问题重复。@roadrunner66,我使用?,since它可以是任何东西。你认为将它改为5对其他人更好吗?谢谢!是的,我不确定,我只是想找出其他有类似问题的人(不知道转置这个词)会找到你的问题。也许
重新排列numpy数组的维度
?我建议将这个问题重命名为
numpy数组[3 5]至[5 3 5]
…至5倍[3 5]
使其对其他人更有用。显然,对于每个第一次查看多维数据的人来说,
转置
这个词并不明显,所以这就是保留这个问题的价值所在。否则,我确信这将与其他现有的
转置
问题重复。@roadrunner66,我使用?,since它可以是任何东西。你认为将它改为5对其他人更好吗?谢谢!是的,我不确定,我只是想找出其他有类似问题的人(不知道转置这个词)会发现你的问题。也许
重新排列numpy数组的维度