2017-08-14 17 views
1

私は、次の行を含んでいるスクリプトを記述しようとしているnumpy配列の各行に関数を適用しますか?

fra = struct.frac_coords 

と "FRA" は、以下の答え与えています:

array([[ 0.01106406, 0.11554355, 0.50754736], 
    [ 0.00294858, 0.24640931, 0.99887037], 
    [ 0.37046412, 0.08121749, 0.9386742 ], 
    [ 0.49430774, 0.07065645, 0.7479905 ], 
    [ 0.6249222 , 0.04073112, 0.56187813]]) 

、その後、私は次の行を持っている:

periodic = struct.get_sites([ 0.01106406, 0.11554355, 0.50754736], 5.95, include_index=True) 

print(periodic) 

したがって、 "fra"から得られた配列の各行を "periodic"行に入力して結果を取得する必要があります。配列の行を「定期的」に置く必要がないように、行をどのようにして作ることができますか?

ありがとうございます。

答えて

2

あなたは幸運です! forループと呼ばれる素晴らしいものがあります。これにより、各行を順番にループし、同じループを計算することができます。

fra = struct.frac_coords 

for row in fra: 
    periodic = struct.get_sites(row, 5.95, include_index=True) 
    print(periodic) 
0

私はこの仕事をするためにリストの理解を使用します。

import numpy as np 
    x = np.array([[ 0.01106406, 0.11554355, 0.50754736], 
     [ 0.00294858, 0.24640931, 0.99887037], 
     [ 0.37046412, 0.08121749, 0.9386742 ], 
     [ 0.49430774, 0.07065645, 0.7479905 ], 
     [ 0.6249222 , 0.04073112, 0.56187813]]) 

    def get_sites(a): 
     return a*2 

    [get_sites(y) for y in x] 
関連する問題