1

Pythonで翻訳しようとしているmatlabコードがあります。私はPythonの初心者ですが、少しグーグルで多くの質問に答えることができました。しかし今、私は次のことを理解しようとしています: 各列に異なるものを適用するときに for ループがありますが、列の数はわかりません。例えば。matlab では、これほど簡単なことはありません。

    for n = 1:size(x,2); y(n) = mean(x(:,n)); end  

しかし、Python では x[:,1] を実行できないため、たとえば列数が 1 の場合、Python でそれを行う方法がわかりません。何か案が?

ありがとう

4

3 に答える 3

1

試してみてくださいnumpy。これは、C で書かれた高性能数学ライブラリの python バインディングです。行列スライス操作と同じ概念を持ち、純粋な python で書かれた同じコードよりも大幅に高速です (ほとんどの場合)。

あなたの例に関しては、最も近いのはnumpy.mean.

純粋な python では、列の平均を計算するのは困難ですが、行列を転置できる場合は、次のようなものを使用して実行できます。

# there are no builtin avg function
def avg(lst):
    return sum(lst)/len(lst)

rows = list(avg(row) for row in a)
于 2013-06-26T19:10:42.410 に答える