1. ホーム
  2. python

[解決済み] numpy.random.shuffleはNoneを返します。

2022-02-16 09:37:29

質問

インストールしたのは numpy1.8.2 で、以下のコードを試してみました。

import numpy as np
a = np.arange(10)
print a, np.random.shuffle(a)

が、その出力は:

[0 1 2 3 4 5 6 7 8 9] None

なぜか None によれば、その doc と表示され、動作するはずです。問題が解らないのです。

私は PyCharm 3.1 をWindows 7上で実行します。

解決方法は?

shuffle はその場で動作するため、値を返しません。

In [1]: x = range(9)

In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8]

In [5]: print numpy.random.shuffle(x)
None

In [6]: x
Out[6]: [8, 7, 3, 4, 6, 0, 5, 1, 2]