139

mxn 配列があるとします。この配列の各列を関数に渡して、列全体に対して何らかの操作を実行したいと考えています。配列の列を反復処理するにはどうすればよいですか?

たとえば、次のような 4 x 3 配列があります。

1  99 2
2  14 5
3  12 7
4  43 1

for column in array:
  some_function(column)

ここで、列は最初の繰り返しで「1,2,3,4」、2 回目で「99,14,12,43」、3 回目で「2,5,7,1」になります。

4

9 に答える 9

265

配列の転置を繰り返すだけです:

for column in array.T:
   some_function(column)
于 2012-04-13T21:59:04.437 に答える
23

これで始められるはずです

>>> for col in range(arr.shape[1]):
    some_function(arr[:,col])


[1 2 3 4]
[99 14 12 43]
[2 5 7 1]
于 2012-04-13T21:59:45.950 に答える
6

3次元配列の場合、次を試すことができます:

for c in array.transpose(1, 0, 2):
    do_stuff(c)

仕組みについてはドキュメントを参照してくださいarray.transpose。基本的に、シフトする次元を指定しています。この場合、2 番目の次元 (列など) を最初の次元にシフトします。

于 2018-07-02T23:36:20.040 に答える
5
for c in np.hsplit(array, array.shape[1]):
    some_fun(c)
于 2016-02-01T21:08:53.587 に答える