# 导包
import numpy as np

Fancy Indexing 应用在一维数组

x = np.arange(16)
x[3] #
x[3:9] # array([3, 4, 5, 6, 7, 8])
x[3:9:2] # array([3, 5, 7])
[x[3], x[5], x[7]] # [3, 5, 7]
ind = [3, 5, 7]
x[ind] # array([3, 5, 7])
ind = np.array([[0, 2], [1, 3]])
x[ind]
"""
array([[0, 2],
[1, 3]])
"""

Fancy Indexing 应用在二维数组

X = x.reshape(4, -1)
"""
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
"""
row = np.array([0, 1, 2])
col = np.array([1, 2, 3])
# 1行2列,2行3列,3行4列
X[row, col] # array([ 1, 6, 11])
# 前2行 2,3,4列
X[:2, col]
"""
array([[1, 2, 3],
[5, 6, 7]])
"""
col = [True, False, True, True]
X[0, col] # array([0, 2, 3])

numpy.array 的比较

  返回布尔值

x  # array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
x < 3
"""
array([ True, True, True, False, False, False, False, False, False,
False, False, False, False, False, False, False])
"""
x >= 3
x == 3
x != 3 # 计算公式也可以接受
2 * x == 24 - 4 * x X
"""
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
"""
X < 6
"""
array([[ True, True, True, True],
[ True, True, False, False],
[False, False, False, False],
[False, False, False, False]])
"""

使用 numpy.array 的比较结果

# x <= 3 的个数
np.count_nonzero( x <= 3)
# x <= 3 的个数
np.sum(x <= 3)
# 每列能整除2的个数
np.sum(X % 2 == 0, axis=0) # array([4, 0, 4, 0])
# 每行能整除2的个数
np.sum(X % 2 == 0, axis=1) # array([2, 2, 2, 2])
#只要有任何一个值为 0,返回就是 true
np.any(x == 0)
#所有值都 > 0,返回就是 true
np.all(x > 0)
# 每行的值都 > 0 , 返回True
np.all(X > 0, axis=1) # array([False, True, True, True])
# (3,10)范围内的数
np.sum((x > 3) & (x < 10))
# 整除2,或者 > 10的个数
np.sum((x % 2 == 0) | (x > 10))
# 非0个数
np.sum(~(x == 0))

比较结果和 Fancy Indexing

x % 2 == 0
"""
array([ True, False, True, False, True, False, True, False, True,
False, True, False, True, False, True, False])
"""
x[x % 2 == 0] # array([ 0, 2, 4, 6, 8, 10, 12, 14]) x[x < 5] # 取第4列数据,取余为0为True的索引为行索引,取1、4行,所有列数据
X[X[:,3] % 3 == 0, :]

Numpy 中的比较和 Fancy Indexing的更多相关文章

  1. 理解numpy中ndarray的内存布局和设计哲学

    目录 ndarray是什么 ndarray的设计哲学 ndarray的内存布局 为什么可以这样设计 小结 参考 博客:博客园 | CSDN | blog 本文的主要目的在于理解numpy.ndarra ...

  2. numpy中matrix的特殊属性

    一.matrix特殊属性解释 numpy中matrix有下列的特殊属性,使得矩阵计算更加容易 摘自 NumPy Reference Release 1.8.1 1.1 The N-dimensiona ...

  3. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  4. Numpy中Meshgrid函数介绍及2种应用场景

    近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法.但总觉得印象不深刻,不是太了解meshgrid的应用场景.所以,本文将进一步介绍Numpy中meshgrid的用法 ...

  5. [开发技巧]·Numpy中对axis的理解与应用

    [开发技巧]·Numpy中对axis的理解与应用 1.问题描述 在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数. 一般的教程都是针 ...

  6. numpy中的随机数模块

    https://www.cnblogs.com/td15980891505/p/6198036.html numpy.random模块中提供啦大量的随机数相关的函数. 1 numpy中产生随机数的方法 ...

  7. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  8. numpy 中的 broadcasting 理解

    broadcast 是 numpy 中 array 的一个重要操作. 首先,broadcast 只适用于加减. 然后,broadcast 执行的时候,如果两个 array 的 shape 不一样,会先 ...

  9. numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

    numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组 import numpy as np 使用array对象 arr1=np.arange(12).reshap ...

随机推荐

  1. Mac OS Catalina 如何删除自带的应用

    在新推送的系统升级过后,(博主系统是Mac OS Mojave 10.14)我们会发现,之前我们删除的令人讨厌的Mac自带应用又回来了,如果我们还按照之前百度的方式删除的话,参考: https://w ...

  2. Kafka0.11之RoundRobinPartitioner/HashPartitioner(Scala):

    RoundRobinPartitioner/HashPartitioner: import java.util import java.util.concurrent.atomic.AtomicLon ...

  3. Vim 使用 DrawIt 画图

    简介 DrawIt 插件用来在 Vim 中进行简单的画图功能.可以方便地移动光标并画出横线.竖线.斜线.箭头和交叉字符,也带有实用的画图功能,轻松画带箭头的线.矩形及椭圆. 官方主页:https:// ...

  4. NOIP2014联合权值

    无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi  ,每条边的长度均为1.图上两点(u, v)的距离定义为u点到v点的最短距离.对于图G上的点对(u, v),若它们的距离 ...

  5. Head First设计模式——策略模式

    1.继承带来的扩展和复用问题 继承作为面向对象的三大要素(封装.继承.多态)之一为什么会带来问题,问题如何解决然后形成一种设计模式,head frist设计模式书中以鸭子作为例子讲解什么情况下继承的方 ...

  6. 重载operator new delete函数

    可以重载global的operator new delete 函数,细节如下: MyNewDelete.h #pragma once #include <stdlib.h> #includ ...

  7. 子网掩码!如何划分子网掩码,计算IP地址

    作者:chli1806 一.子网掩码的含义和根据子网掩码划分子网一个IP地址必然属于某一个网络,或者叫子网.子网掩码就是用来指定某个IP地址的网络地址的,换一句话说,就是用来划分子网的.例如,一个A类 ...

  8. C语言打印当前所在函数名、文件名、行号

    printf("[%s %s] %s: %s: %d\n", \ __DATE__, __TIME__, __FILE__, __func__, __LINE__); 内核驱动中: ...

  9. Java学习笔记之方法

     前言:如果把所有代码都写到main方法中,后果是什么?    1,结构混乱 不清晰    2,不能重用 方法:规则:方法写在类中,不能写在其它方法中.方法不能嵌套方法 如何定义方法: 访问修饰符 返 ...

  10. 关于参加AWD攻防比赛心得体会

    今天只是简单写下心得和体会 平时工作很忙 留给学习的时间更加珍少宝贵. 重点说下第二天的攻防比赛吧  . 三波web题 .涉及jsp,php,py. 前期我们打的很猛.第一波jsp的题看到有首页预留后 ...