2

次のような(48,64)Numpy配列を作成するにはどうすればよいですか?

i,      i,      i, .....,i
i+0.1,  i+0.1,..........,i+0.1
i+0.2,  i+0.2,..........,i+0.2
.
.
.
.
i+6.3,  i+6.3,..........,i+6.3

0.1は行間の固定差です。

JoshAdelの答えで完全に解決しました。

しかし、列間の固定された違いはどうですか?

i,i+0.1,i+0.2.....i+6.3
i,i+0.1,i+0.2.....i+6.3
.
.
.
i,i+0.1,i+0.2.....i+6.3

どうもありがとう!

4

2 に答える 2

2
import numpy as np
i = 10.0
a = np.empty((64,48))
a.fill(i)
a += np.arange(0,6.4,0.1)[:,np.newaxis]

Out[12]: 
array([[ 10. ,  10. ,  10. , ...,  10. ,  10. ,  10. ],
       [ 10.1,  10.1,  10.1, ...,  10.1,  10.1,  10.1],
       [ 10.2,  10.2,  10.2, ...,  10.2,  10.2,  10.2],
       ..., 
       [ 16.1,  16.1,  16.1, ...,  16.1,  16.1,  16.1],
       [ 16.2,  16.2,  16.2, ...,  16.2,  16.2,  16.2],
       [ 16.3,  16.3,  16.3, ...,  16.3,  16.3,  16.3]])

いくつかのメモ:

  • Numpyの形状規則は(nrow、ncolumn)であるため、質問の配列に対して(48,64)ではなく(64,48)の形状にする必要があります。

  • これを行うには複数の方法がありますが、私はnumpyのブロードキャスト表記を使用することにしました。

  • これはもっとコンパクトに書くことができますが、説明のために別々のステップに分割しました。

于 2012-12-04T03:22:58.600 に答える
0

これを行う別の方法(楽しみのために)は、tiledoc)を使用することです。

c = 10 + np.cumsum(np.ones(64))*.1 - .1
a = np.tile(c,(48,1)).T
于 2012-12-04T05:15:39.537 に答える