我想把这个sum(sum(W_set{1}~=0))
转换成Python:
%MATLAB code:
W_set = {[[[-0.05747274, -0.05268928],
[-0.10961724, 0.10119643],
[-0.0327577 , 0.01514941]]],
[[[-0.05557293, 0.11311244],
[-0.22935626, -0.11837874],
[-0.05567432, -0.0558801 ]]]};
sum(sum(W_set{1}~=0))
输出是6。我如何在Python中获得这个输出,Python中的W_set
是一个列表。
我尝试了以下方法,但结果并不相同。
#Python code:
import numpy as np
W_set = [[[[-0.05747274, -0.05268928],
[-0.10961724, 0.10119643],
[-0.0327577 , 0.01514941]]],
[[[-0.05557293, 0.11311244],
[-0.22935626, -0.11837874],
[-0.05567432, -0.0558801 ]]]]
if np.array(W_set[0]).all != 0: #checking not equal to zero
sum_ = np.sum(np.sum(W_set[0])) #sum
print(sum_)
答案是-0.13619112。在MATLAB sum
函数中使用运算符~=
是什么意思?
发布于 2021-03-12 23:45:03
您可以使用numpy.sum
,它将对所有轴求和,但为了将向量化指令中的元素与零进行比较,您需要它是一个数值数组
np.sum(np.array(W_set[0]) != 0)
或者,您可以创建W_set = np.array([...])
,然后
np.sum(W_set[0] != 0)
(W_set[0] != 0).sum()
https://stackoverflow.com/questions/66602687
复制相似问题