博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numpy数组-过滤数组
阅读量:6165 次
发布时间:2019-06-21

本文共 1325 字,大约阅读时间需要 4 分钟。

可以使用一个numpy数组作为索引数组去过滤原数组,索引数组里为true的值,保留,为false的值去掉

import numpy as np

使用索引数组

a = np.array([1, 2, 3, 4])b = np.array([True, True, False, False])print a[b]                                       #[1 2]print a[np.array([True, False, True, False])]    #[1 3]

通过对原数组进行向量化运算得到索引数组

a = np.array([1, 2, 3, 2, 1])b = (a >= 2)print a[b]            #[2 3 2]print a[a >= 2]       #[2 3 2]

通过对某一数组进行向量化运算得到索引数组

a = np.array([1, 2, 3, 4, 5])b = np.array([1, 2, 3, 2, 1])print b == 2      #[False True False True False]print a[b == 2]   #[2 4]

一个例子:

# 20个学生在课程上所花费的时间time_spent = np.array([       12.89697233,    0.        ,   64.55043217,    0.        ,       24.2315615 ,   39.991625  ,    0.        ,    0.        ,      147.20683783,    0.        ,    0.        ,    0.        ,       45.18261617,  157.60454283,  133.2434615 ,   52.85000767,        0.        ,   54.9204785 ,   26.78142417,    0.])# 20个学生参加学习的天数days_to_cancel = np.array([      4,   5,  37,   3,  12,   4,  35,  38,   5,  37,   3,   3,  68,     38,  98,   2, 249,   2, 127,  35])def mean_time_for_paid_students(time_spent, days_to_cancel):    '''    计算参加课程大于等于7天的学生平均在课程上所花的时间    '''    index_array = days_to_cancel >= 7    mean_time = time_spent[index_array].mean()    return mean_timeprint(mean_time_for_paid_students(time_spent, days_to_cancel))# 结果: 41.0540034855

转载地址:http://qhuba.baihongyu.com/

你可能感兴趣的文章
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
图解SSH原理及两种登录方法
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JS图片跟着鼠标跑效果
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
416. Partition Equal Subset Sum
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>