Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将带~=不相等条件的MATLAB求和函数转换为Python_Python_Matlab - Fatal编程技术网

将带~=不相等条件的MATLAB求和函数转换为Python

将带~=不相等条件的MATLAB求和函数转换为Python,python,matlab,Python,Matlab,我想将这个sum(sum(W_set{1}~=0))转换成Python: %MATLAB代码: W_集={[[-0.05747274,-0.05268928], [-0.10961724, 0.10119643], [-0.0327577 , 0.01514941]]], [[[-0.05557293, 0.11311244], [-0.22935626, -0.11837874], [-0.05567432, -0.0558801 ]]]}; 和(和(W_集{1}~=0)) 输出为6。

我想将这个
sum(sum(W_set{1}~=0))
转换成Python:

%MATLAB代码:
W_集={[[-0.05747274,-0.05268928],
[-0.10961724,  0.10119643],
[-0.0327577 ,  0.01514941]]],
[[[-0.05557293,  0.11311244],
[-0.22935626, -0.11837874],
[-0.05567432, -0.0558801 ]]]};
和(和(W_集{1}~=0))
输出为6。如何在Python中获得此输出,Python中的
W_set
是一个列表

我尝试过以下方法,但结果不一样

#Python代码:
将numpy作为np导入
W_集=[-0.05747274,-0.05268928],
[-0.10961724,  0.10119643],
[-0.0327577 ,  0.01514941]]],
[[[-0.05557293,  0.11311244],
[-0.22935626, -0.11837874],
[-0.05567432, -0.0558801 ]]]]
如果np.数组(W_集[0])。全部!=0:#检查值不等于零
sum=np.sum(np.sum(W_集[0]))#sum
打印(总和)

答案是-0.13619112。在MATLAB
sum
函数中使用运算符
~=
的含义是什么?

您可以使用
numpy.sum
它将在所有轴上求和,但为了在矢量化指令中将元素与零进行比较,您需要它是一个numpy数组

np.sum(np.array(W_set[0])!=0)
或者,您可以制作
W_set=np.array([…])
,然后

np.sum(W_集[0]!=0)
(W_集[0]!=0).sum()

在Matlab中:
W_集{1}~=0
返回与
W_集{1}
大小相同的数组,但该数组仅包含1和0,具体取决于原始数组中相同位置的元素是否不为零。所以,
sum(sum(W_set{1}~=0))
基本上只是计算原始数组中非零元素的数量。太棒了!出于好奇,Matlab中的
W_集{1}~=0
返回1s。它何时返回0,因为我有负元素
W_set{1}
只有当起始元素正好为0时,它才会返回0。正如您可能猜到的,负元素不是零,因此它们也返回1。