首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >~=不等于条件的MATLAB求和函数到Python的转换

~=不等于条件的MATLAB求和函数到Python的转换
EN

Stack Overflow用户
提问于 2021-03-12 23:24:08
回答 1查看 48关注 0票数 0

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

代码语言:javascript
运行
复制
%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是一个列表。

我尝试了以下方法,但结果并不相同。

代码语言:javascript
运行
复制
#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函数中使用运算符~=是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-12 23:45:03

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

代码语言:javascript
运行
复制
np.sum(np.array(W_set[0]) != 0)

或者,您可以创建W_set = np.array([...]),然后

代码语言:javascript
运行
复制
np.sum(W_set[0] != 0)
代码语言:javascript
运行
复制
(W_set[0] != 0).sum()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66602687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档