Python 如何用极低密度的1填充零矩阵
我有一个由大小为(850850)的零组成的3D矩阵,我想以极低密度=8*10^-7的均匀方式在该矩阵中插入一个。 我试着使用random.sparse(它适用于更高的密度),但它不起作用,我认为密度太低,接近于零,事实上,没有一个密度应该是50个。 以下是更好理解的代码:Python 如何用极低密度的1填充零矩阵,python,numpy,random,Python,Numpy,Random,我有一个由大小为(850850)的零组成的3D矩阵,我想以极低密度=8*10^-7的均匀方式在该矩阵中插入一个。 我试着使用random.sparse(它适用于更高的密度),但它不起作用,我认为密度太低,接近于零,事实上,没有一个密度应该是50个。 以下是更好理解的代码: import numpy as np import random space=np.zeros(shape=(850,850,850)) den=50/(850*850*850) for k in range (0,850)
import numpy as np
import random
space=np.zeros(shape=(850,850,850))
den=50/(850*850*850)
for k in range (0,850):
rdm_space=sparse.random(850, 850, density=den, data_rvs=np.ones)
rdm_space=rdm_space.toarray()
space[:][:][k] = vac_space
有人有什么建议吗?
谢谢我不确定如果使用NumPy数组,为什么需要稀疏采样 只需采样索引并将值设置为1 沿途
import numpy as np
N = 850*850*850
o = 50
space=np.zeros(N, dtype=np.int32)
idx = np.random.choice(N, size=o, replace=False) # sampled indices
space[idx]=1 # set values at idx to one
# quick check
q = space[space>0]
print(len(q))
# make final properly shaped array
np.reshape(space, newshape=(850,850,850))
不确定如果最终使用NumPy数组,为什么需要稀疏采样 只需采样索引并将值设置为1 沿途
import numpy as np
N = 850*850*850
o = 50
space=np.zeros(N, dtype=np.int32)
idx = np.random.choice(N, size=o, replace=False) # sampled indices
space[idx]=1 # set values at idx to one
# quick check
q = space[space>0]
print(len(q))
# make final properly shaped array
np.reshape(space, newshape=(850,850,850))