python 判断矩阵中每行非零个数的方法


Posted in Python onJanuary 26, 2019

如下所示:

# -*- coding: utf-8 -*-
# @Time  : 2018/5/17 15:05
# @Author : Sizer
# @Site  : 
# @File  : test.py
# @Software: PyCharm
import time
import numpy as np

# data = np.array([
# [5.0, 3.0, 4.0, 4.0, 0.0],
# [3.0, 1.0, 2.0, 3.0, 3.0],
# [4.0, 3.0, 4.0, 3.0, 5.0],
# [3.0, 3.0, 1.0, 5.0, 4.0],
# [1.0, 5.0, 5.0, 2.0, 1.0]
# ])
data = np.random.random((1000, 1000))
print(data.shape)
start_time = time.time()
# avg = [float(np.mean(data[i, :])) for i in range(data.shape[0])]
# print(avg)


start_time = time.time()
avg = []
for i in range(data.shape[0]):
  sum = 0
  cnt = 0
  for rx in data[i, :]:
   if rx > 0:
     sum += rx
     cnt += 1
  if cnt > 0:
   avg.append(sum/cnt)
  else:
   avg.append(0)
end_time = time.time()
print("op 1:", end_time - start_time)

start_time = time.time()
avg = []
isexist = (data > 0) * 1
for i in range(data.shape[0]):
  sum = np.dot(data[i, :], isexist[i, :])
  cnt = np.sum(isexist[i, :])
  if cnt > 0:
   avg.append(sum / cnt)
  else:
   avg.append(0)
end_time = time.time()
print("op 2:", end_time - start_time)
#
# print(avg)
factor = np.mat(np.ones(data.shape[1])).T
# print("facotr :")
# print(factor)
exist = np.mat((data > 0) * 1.0)
# print("exist :")
# print(exist)
# print("res  :")
res = np.array(exist * factor)
end_time = time.time()
print("op 3:", end_time-start_time)

start_time = time.time()
exist = (data > 0) * 1.0
factor = np.ones(data.shape[1])
res = np.dot(exist, factor)
end_time = time.time()
print("op 4:", end_time - start_time)

经过多次验证, 第四种实现方式的事件效率最高!

以上这篇python 判断矩阵中每行非零个数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的jquery PyQuery库使用小结
May 13 Python
在Python中使用列表生成式的教程
Apr 27 Python
Python处理字符串之isspace()方法的使用
May 19 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
通过实例了解python property属性
Nov 01 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
python中remove函数的踩坑记录
Jan 04 Python
浅谈Python数学建模之线性规划
Jun 23 Python
对python 判断数字是否小于0的方法详解
Jan 26 #Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 #Python
在Python中调用Ping命令,批量IP的方法
Jan 26 #Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 #Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 #Python
Python检查ping终端的方法
Jan 26 #Python
使用python Telnet远程登录执行程序的方法
Jan 26 #Python
You might like
PHP 一个随机字符串生成代码
2010/05/26 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
python如何对实例属性进行类型检查
2018/03/20 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
自荐信格式的六要素
2013/09/21 职场文书
销售高级职员求职信
2013/10/29 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
社会实践的活动方案
2014/08/22 职场文书
歌剧魅影观后感
2015/06/05 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
Python循环之while无限迭代
2022/04/30 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers