5

私は2つの配列を持っています:

a=np.array((1,2,3,4,5))
b=np.array((2,3,4,5,6))

私が望むのは、linspace の制限に a と b の値を使用することです。

c=np.linspace(a,b,11)

このコードを使用するとエラーが発生します。答えは、配列の最初の要素に対するものである必要があります。

c=np.linspace(a,b,11)
print c
c=[1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2]
4

3 に答える 3

12

明示的な Python ループを回避したい場合は、次のようにすることができます。

>>> a = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
>>> b = np.array([2, 3, 4, 5, 6]).reshape(-1, 1)
>>> c = np.linspace(0, 1, 11)
>>> a + (b - a) * c
array([[ 1. ,  1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ],
       [ 2. ,  2.1,  2.2,  2.3,  2.4,  2.5,  2.6,  2.7,  2.8,  2.9,  3. ],
       [ 3. ,  3.1,  3.2,  3.3,  3.4,  3.5,  3.6,  3.7,  3.8,  3.9,  4. ],
       [ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9,  5. ],
       [ 5. ,  5.1,  5.2,  5.3,  5.4,  5.5,  5.6,  5.7,  5.8,  5.9,  6. ]])
于 2013-06-02T21:18:43.440 に答える
8

あなたはこれを行うことができます:

c = np.array([np.linspace(i,j,5) for i,j in zip(a,b)])

#array([[ 1.  ,  1.25,  1.5 ,  1.75,  2.  ],
#       [ 2.  ,  2.25,  2.5 ,  2.75,  3.  ],
#       [ 3.  ,  3.25,  3.5 ,  3.75,  4.  ],
#       [ 4.  ,  4.25,  4.5 ,  4.75,  5.  ],
#       [ 5.  ,  5.25,  5.5 ,  5.75,  6.  ]])
于 2013-06-02T21:03:05.523 に答える
0

次の要素よりも最初の要素を使用してください。

a = np.array((1, 2, 3, 4, 5))
b = np.array((2, 3, 4, 5, 6))
np.linspace(a[0], b[0], 11)

結果:

array([ 1. ,  1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ])

編集

コメントだけ見ました。OPは2次元配列を必要とします:

np.array([np.linspace(x, y, 11) for x, y in zip(a, b)])

array([[ 1. ,  1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ],
       [ 2. ,  2.1,  2.2,  2.3,  2.4,  2.5,  2.6,  2.7,  2.8,  2.9,  3. ],
       [ 3. ,  3.1,  3.2,  3.3,  3.4,  3.5,  3.6,  3.7,  3.8,  3.9,  4. ],
       [ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9,  5. ],
       [ 5. ,  5.1,  5.2,  5.3,  5.4,  5.5,  5.6,  5.7,  5.8,  5.9,  6. ]])
于 2013-06-02T21:01:33.887 に答える