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

# -*- 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 判断矩阵中每行非零个数的方法的更多相关文章

  1. python 判断字符串中是否只有中文字符

    python 判断字符串中是否只有中文字符 学习了:https://segmentfault.com/q/1010000007898150 def is_all_zh(s): for c in s: ...

  2. python判断字符串中是否包含子字符串

    python判断字符串中是否包含子字符串 s = '1234问沃尔沃434' if s.find('沃尔沃') != -1:     print('存在') else:     print('不存在' ...

  3. python判断list中是否包含某个元素

    python判断list中是否包含某个元素 theList = ['a','b','c'] if 'a' in theList: print 'a in the list' if 'd' not in ...

  4. lintcode-401-排序矩阵中的从小到大第k个数

    401-排序矩阵中的从小到大第k个数 在一个排序矩阵中找从小到大的第 k 个整数. 排序矩阵的定义为:每一行递增,每一列也递增. 样例 给出 k = 4 和一个排序矩阵: [ [1 ,5 ,7], [ ...

  5. Java:判断字符串中包含某字符的个数

    Java:判断字符串中包含某字符的个数 JAVA中查询一个词在内容中出现的次数: public int getCount(String str,String key){ if(str == null ...

  6. JAVA判断字符串中某个字符存在的个数

    /** * 判断字符串中某个字符存在的个数 * @param str1 完整字符串 * @param str2 要统计匹配个数的字符 * @return */ public static int co ...

  7. [google面试CTCI] 1-7.将矩阵中特定行、列置0

    [字符串与数组] Q:Write an algorithm such that if an element in an MxN matrix is 0, its entire row and colu ...

  8. 排序矩阵中的从小到大第k个数 · Kth Smallest Number In Sorted Matrix

    [抄题]: 在一个排序矩阵中找从小到大的第 k 个整数. 排序矩阵的定义为:每一行递增,每一列也递增. [思维问题]: 不知道应该怎么加,因为不是一维单调的. [一句话思路]: 周围两个数给x或y挪一 ...

  9. python 删除文件中指定行

    代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline报错的时的回滚 start = '<se ...

随机推荐

  1. javascript 对象的方式解析url地址参数

    看到一个知识点,比如说给一个 url参数,让其解析里面的各个参数,以前我都是通过字符串分割来实现的.但是通过这样的方式比较麻烦,而且操作字符串容易出错.今天看到了一个更有效更快速的方式,就是通过对象来 ...

  2. 类似hover的css伪类注解

    a:link { font-size: 14pt; text-decoration: underline; color: blue; } /*设置a对象在未被访问前的样式表属性 .*/ a:hover ...

  3. 关于如何修改一张表中所有行与选定字段的同sql多行语句的添加方法

    利用Excel以及word文档进行操作 将表的字段以及数据全部放入Excel表中并保存. 在word表中将写好的sql语句放入文档,利用邮件--选择收件人--使用现有列表--(选择之前做好的Excel ...

  4. Linux shell 中断循环语句

    无限循环: 循环有限的生命,他们跳出来,一旦条件是 false 还是 false 取决于循环. 由于所需的条件是不符合一个循环可能永远持续下去.永远不会终止执行一个循环执行无限次数.出于这个原因,这样 ...

  5. django使用pycharm目录打开不正确导致的问题

    1.在目录D:\software\pycharmpython\djangoProject下新建helloworld的项目:django-admin startproject helloworld 2. ...

  6. JAVA类与类之间的关系及代码示例

    参考链接:https://blog.csdn.net/wq6ylg08/article/details/81092056

  7. 201871010126 王亚涛 《面向对象程序设计(java)》 第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  8. robotframework-selenium2library各个版本

    https://github.com/robotframework/Selenium2Library/downloads

  9. ValueError: Dependency on app with no migrations: customuser

    You haven't run manage.py makemigrations customuser to create the migrations for your CustomUser app ...

  10. VIJOS-P1146 宿舍里的故事之五子棋

    洛谷 P1479 宿舍里的故事之五子棋 洛谷传送门 JDOJ 1311: VIJOS-P1146 宿舍里的故事之五子棋 JDOJ传送门 题目描述 宿舍里好多好多有趣的事! 7890653今天看到不知何 ...