2017-10-09 2 views
1

私はr0 = np.r_[0, 0, 1]で定義されたベクトルr0を持っています。均等に配列された配列のリストを作成するエレガントな方法

私はその鏡像r0 = -r0を定義できます。これはnp.r_[0, 0, -1]です。

私はこのように、r0のリストを作成したい:3列と(1 - ( - 1))のアレイとして

0, 0, -1 
0, 0, -1 + step 
0, 0, -1 + 2*step 
... 
0, 0, 1 

/ステップ株。

私はリストを使ってこれを配列に変換して考えることしかできませんが、すべてのコードをベクトルに変換して以来、配列を使って作業しています。

+0

希望の出力は何ですか? – GiantsLoveDeathMetal

+0

3列と(1 - ( - 1))/ステップラインの配列。 – SuperCiocia

+0

あなたはNumpyを使用しているようです。あなたは本当にそのような質問に 'numpy'タグを追加するべきです。 –

答えて

3

あなたはnp.linspaceを探しているように見える:

バック配列にそれらを包装
>>> z_start = -1 
>>> z_stop = 1 
>>> step = 0.25 
>>> np.linspace(z_start, z_stop, num=1+(z_stop-z_start)/step) 
array([-1. , -0.75, -0.5 , -0.25, 0. , 0.25, 0.5 , 0.75, 1. ]) 

>>> z = np.linspace(z_start, z_stop, num=1+(z_stop-z_start)/step) 
>>> n = len(z) 
>>> np.vstack([np.zeros(n), np.zeros(n), z]).T 
array([[ 0. , 0. , -1. ], 
     [ 0. , 0. , -0.75], 
     [ 0. , 0. , -0.5 ], 
     [ 0. , 0. , -0.25], 
     [ 0. , 0. , 0. ], 
     [ 0. , 0. , 0.25], 
     [ 0. , 0. , 0.5 ], 
     [ 0. , 0. , 0.75], 
     [ 0. , 0. , 1. ]]) 
0

あなたは1つのnumpyの配列を作成し、データの部品のためのビューのリストを持つことができます。

import numpy as np 

step = 10 
r = np.zeros((step, 3)) 
r[:, -1] = np.linspace(-1, 1, step) 

r0 = [r[i] for i in range(r.shape[0])] 

# r0 == [array([ 0., 0., -1.]), 
# array([ 0., 0., -0.77777778]), 
# array([ 0., 0., -0.55555556]), 
# array([ 0., 0., -0.33333333]), 
# array([ 0., 0., -0.11111111]), 
# array([ 0., 0., 0.11111111]), 
# array([ 0., 0., 0.33333333]), 
# array([ 0., 0., 0.55555556]), 
# array([ 0., 0., 0.77777778]), 
# array([ 0., 0., 1.])] 
関連する問題