我有两个一维NumPy数组x = [x[0],x[1],...,x[n-1]]和y = [y[0],y[1],...,y[n-1]]。数组x是已知的,我需要确定数组y的值。对于np.arange(n)中的每个索引,y[index]的值取决于x[index]和x[index + 1:我的代码是:
import numpy as np
n = 5
q = 0.5
x = np.array([1, 2, 0, 1, 0])
y = np.empty(n, dtype=int)
for index in np.arange(n):
if (x[index] != 0) and (np.any(x[index + 1:] == 0)):
y[index] = np.random.choice([0,1], 1, p=(1-q, q))
else:
y[index] = 0
print(y)
for循环的问题是,在我的实验中,n的大小可能会变得非常大。有没有什么向量化的方法可以做到这一点?
1条答案
按热度按时间5vf7fwbs1#
1.随机生成具有完整形状的数组
y
。1.生成一个bool数组,指示在何处设置零。
1.使用
np.where
设置零。试试这个