2016-09-15 10 views
0

私はPythonとNumpy初心者です...と私は立ち往生しています。私は、既存のnumpy配列(つまり、新しい配列=古い配列(ln(x/x-1))の要素のログの戻り値から新しいnumpy配列を作成しようとしています。既存のnumpyarray内の要素の計算から新しいnumpy配列を作成する方法

これはスタックフロー検索で見つかったもっとも近い結果ですが、動作していません(これは正しい結果ではありません)。 : What is the most efficient way to get log returns in numpy

私の推測では、私は、既存の配列の要素に合格する必要があるということですが、私はパンダシリーズとPythonベースのコードから離れるの全体の利益だったnumpyの内の配列や関数を使用して思ったヘルプとフィードバックを感謝しています。 !

コードリンク(私は新しいのでstackflowが私埋め込み画像をさせませんよ):log関数としてhttp://i.stack.imgur.com/wkf56.png

答えて

1

numpyのは、あなたは配列に直接適用することができます。戻り値は同じ形状の新しい配列になります。入力は、dtype == floatの正の値の配列である必要があります。

import numpy 
old_array = numpy.random.random(5.) * 10. 

new_array = numpy.log(old_array/(old_array - 1.)) 

print type(old_array) 
# <type 'numpy.ndarray'> 
print old_array.dtype 
# float64 
print old_array 
# [ 8.56610175 6.40508542 2.00956942 3.33666968 8.90183905] 
print new_array 
# [ 0.12413478 0.16975202 0.68839656 0.35624651 0.11916237] 
+0

私はあなたの勧告を使用したときのような出力受け取る:配列([[ - [-inf] INF]、 [-inf]、 [-inf]、 [-inf]、 を、 [-inf]、 – tdubya123

+0

'log(0。)== -inf'、出力は私に' old_array'がゼロでいっぱいだと思うようにします –

+0

コードの画像への私の最初の投稿のリンクを見てください – tdubya123

関連する問題