如果我有一个 numpy 数组,并且想要将数组前半部分中的每个第 n 个元素替换为 0(后半部分没有变化),我怎样才能有效地做到这一点?现在我的代码不够高效: for i in xrange(1,half,n): s[i] = 0
我有一个ndarray,我想用它的相邻元素的平均值替换数组中的每个值.下面的代码可以完成这项工作,但是当我有700个阵列都具有形状(7000,7000)时,它是超级慢的,所以我想知道是否有更好的方法来做到这一点.谢谢!
a = np.array(([1,2,3,4,5,6,7,8,9],[4,5,6,7,8,9,10,11,12],[3,4,5,6,7,8,9,10,11]))
row,col = a.shape
new_arr = np.ndarray(a.shape)
for x in xrange(row):
for y in xrange(col):
min_x = max(0, x-1)
min_y = max(0, y-1)
new_arr[x][y] = a[min_x:(x+2),min_y:(y+2)].mean()
print new_arr
Run Code Online (Sandbox Code Playgroud) 我有一个带概率密度函数的分段四次分布:
p(x)= c(x/a)^2 if 0?x<a;
c((b+a-x)^2/b)^2 if a?x?b;
0 otherwise
Run Code Online (Sandbox Code Playgroud)
假设 c、a、b 是已知的,我试图从分布中抽取 100 个随机样本。我怎样才能用 numpy/scipy 做到这一点?