我正在嘗試生成可能的大數組浮點數(0.0-1.0),但每個元素都由一個種子數組驅動,該數組由代表一個id的整數組成。用於隨機Numpy數組的元素智能種子
例如,如果我有這兩個數組:
seedArray1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
seedArray2 = np.array([0, 1, 2, 3, 4, 5])
我想能夠使用這些陣列作爲種子,但其中一個元件是在兩個陣列(相同的形狀,無論陣列,或其中該id發生在陣列中發生)的長度的,它應產生相同的浮動,這樣的:
[ 0.5488135 0.417022 0.4359949 0.5507979 0.96702984 0.22199317 0.89286015 0.07630829 0.8734294 0.01037415]
[ 0.5488135 0.417022 0.4359949 0.5507979 0.96702984 0.22199317]
然而,當我嘗試設置numpy.random的隨機種子,我得到了不同的結果:
import numpy as np
x1 = np.arange(10)
x2 = np.arange(6)
np.random.seed(x1)
print np.random.rand(x1.shape[0])
np.random.seed(x2)
print np.random.rand(x2.shape[0])
它打印:
[ 0.41060638 0.23192123 0.91382737 0.02916066 0.91437242 0.51045425 0.26140116 0.16574922 0.08861477 0.31908955]
[ 0.52500897 0.98236732 0.99371835 0.14121932 0.66945133 0.24223304]
有沒有一種方法來生成隨機numpy的陣列,使用每個元素作爲種子,仍然利用numpy的的速度?
這聽起來不是特別有效。這樣做的目的是什麼?你害怕在數據中產生高維相關性嗎? – Bort
在一大組粒子中,我希望能夠使用它們的ID來挑選一定比例的點,但是要在不同的幀之間保持一致。每一幀都是自己的數組,一些粒子可以被刪除,一些可以被添加。 – goldleaf