我有一个前导零的数组,我想从第一个非零元素的数组.例如,我有一个数组
x=[0,0,0,0,0,3,2,0,0,4,5]
Run Code Online (Sandbox Code Playgroud)
我想获得:
x=[3,2,0,0,4,5]
Run Code Online (Sandbox Code Playgroud) 我希望能够将一维numpy数组中的值除以以下值。例如,我有一个看起来像这样的数组。
[ 0 20 23 25 27 28 29 30 30 22 20 19 19 19 19 18 18 19 19 19 19 19 ]
Run Code Online (Sandbox Code Playgroud)
我想做这个:
0/20 #0th value divided by 1st value
20/23 #1st value divided by 2nd value
23/25 #2nd value divided by 3rd value
25/27 #3rd value divided by 4th value
etc...
Run Code Online (Sandbox Code Playgroud)
我可以轻松地通过循环来完成此操作,但是我想知道是否有更有效的方法可以执行numpy操作。
使用numpy.nan作为缺失值添加2个numpy数组a和b(均为2D)的正确方法是什么?
a + b
要么
numpy.ma.sum(a,b)
我有一个带有布尔值的一维(numpy)数组。例如:
x = [True, True, False, False, False, True, False, True, True, True, False, True, True, False]
Run Code Online (Sandbox Code Playgroud)
该数组包含8
True 值。例如,我想从存在的值中随机保留3
(8
在这种情况下必须小于)作为 True 值8
。换句话说,我想将5
这些8
True 值随机设置为 False。
可能的结果是:
x = [True, True, False, False, False, False, False, False, False, False, False, False, True, False]
Run Code Online (Sandbox Code Playgroud)
如何实施?
因为循环似乎非常慢,所以我想知道下面显示的代码中的嵌套循环是否可以使用矢量化bsxfun
,也许GPU也可以引入.
码
%// Paramaters
i = 1;
j = 3;
n1 = 1500;
n2 = 1500;
%// Pre-allocate for output
LInc(n1+n2,n1+n2)=0;
%// Nested Loops - I
for x = 1:n1
for y = 1:n1
num = ((n2 ^ 2) * (L1(i, i) + L2(j, j) + 1)) - (n2 * n * (L1(x,i) + L1(y,i)));
LInc(x, y) = L1(x, y) + (num/denom);
LInc(y, x) = LInc(x, y);
end
end
%// Nested Loops - II
for x = 1:n1 …
Run Code Online (Sandbox Code Playgroud) 我想创建一个矩阵M
与指标i,j
使M(i,j)=i/j
.我可以使用两个循环来做到这一点但是有没有办法在不使用for
循环的情况下做到这一点?