2016-12-23 7 views
2

私はこのようなnumpyの1次元配列を生成する:番号2はN_2回 すぐに特別なnumpy 1D配列を生成するには?

  • を繰り返し
  • N_1回繰り返し

    1. 数0はN_0回
    2. 番号1を繰り返し...
    3. 数N repeat n_N times

    n_1、n_2、n_3、... n_Nは異なり、Nは非常に大きくなる可能性があります。

    ここで私は、ランダムに私が現時点で使用できる方法を示すために、配列nv=[n_1, n_2, ...,n_N]を生成します。 nv = np.random.randint(3, 10+1, size=(1000000,)) np.concatenate([i*np.ones((j,)) for i,j in zip(range(1000000), nv)])

    だから私の質問は次のとおりです。そのようなことを行うには良い方法はありますか?

    私は1D numpyの配列生成に関する別の質問を持って、参照してください。 How to generate a 1D numpy array like [0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 0, 1, 2, 3, 4, 5, 0, …]?

  • 答えて

    2

    この機能は、文字通りあります:

    numpy.repeat(numbers_to_repeat, numbers_of_repetitions) 
    

    場合など "数0"、 "ナンバー1"、で。あなたは0から始まる自然数を意味し、入力配列の要素ではないことを意味します。

    numpy.repeat(numpy.arange(N), numbers_of_repetitions) 
    
    +0

    とてもいいですね!どうもありがとう! –

    +0

    上記の質問に新しい似た質問が追加されました。あなたに私にもっと提案してもらえますか?ありがとう –

    関連する問題