2017-09-05 39 views
-2

我試圖得到一個3×3陣列,看起來像這樣:numpy.random.rand沒有給我正確的形狀

[ 
    [ 0.76720544 0.1254068 0.08350556], 
    [-0.265288 -0.28945529 -0.57703701], 
    [ 0.12194653 -0.3044894 0.46754351] 
] 

使用numpy.random.rand(3 * 3) - 0.5,而是我得到一個1×9陣列看起來是這樣的:

[ 0.2221102, -0.25766852, -0.04060757, 0.23138759, 0.4081494, -0.1911101, 0.1737616, 0.19768079, 0.28941601] 

回答

1

你想numpy.random.rand(3, 3),不numpy.random.rand(3 * 3)rand將輸出的維度作爲單獨的位置參數。

記住,Python的評估參數進入該功能,所以numpy.random.rand(3 * 3)唯一可能的解釋是,這是一樣的numpy.random.rand(9),這是你得到了什麼:長度9的一維數組。

+0

你是對的謝謝 –

0

正確的用法是:

numpy.random.rand(3,3) - 0.5 # , as seperator between dimension-sizes! 

看的rand的文檔。

簽名上寫着:

numpy.random.rand(D0,D1,...,DN)

+0

完全忽略,謝謝 –