0

iPython で次の numpy 配列を再形成したいと思います。

array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]) # Array A

に:

array([[1, 5, 9],[2, 6, 10],[3, 7, 11],[4, 8, 12]]) # Array B

主なタスクは、配列 A の最初の要素の平均 (1、5、9 の平均) を計算し、次に 2 番目の要素などを計算することです。

これを行う最も簡単な方法は、配列を再形成し、後でその平均を計算することだと思いました。

ループ経由で配列をループせずにこれを行う方法はありforますか?

4

2 に答える 2

8

;でaxisキーワードを使用します。meanする必要はありませんreshape

>>> A = np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])
>>> A.mean(axis=0)
array([ 5.,  6.,  7.,  8.])

配列を出力したい場合は、B配列の形状を変更するのではなく、配列を転置する必要があります。

>>> A.T
array([[ 1,  5,  9],
       [ 2,  6, 10],
       [ 3,  7, 11],
       [ 4,  8, 12]])

しかし、あなたはに与える必要があるでしょaxis=1mean

于 2012-05-31T12:11:12.587 に答える
2

この種の計算を行うには、numpyを使用する必要があります。

aが開始配列であると仮定すると、次のようになります。

a.transpose()

トリックをします

于 2012-05-31T12:10:52.690 に答える