# 导包
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. Java 学习笔记之 线程Yield

    线程Yield: yield()方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间,但放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片. public class Yie ...

  2. JavaScript设计模式——原型模式

    原型模式: 原型模式是指原型实例指向创建对象的种类,并通过拷贝这些原型创建新的对象,是一种用来创建对象的模式,也就是创建一个对象作为另一个对象的prototype属性: prototype警告:学习了 ...

  3. Tomcat8 结构原理解析

    Tomcat是JavaWeb组件架构中一款apache开源的服务器软件,通过对其的学习,总结并且分享了关于它的知识,下边是分享ppt内容,希望对想了解tomcat人有帮助. Tomcat历史 1999 ...

  4. MySQLdb操作数据库

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: + ...

  5. 02-11 RANSAC算法线性回归(波斯顿房价预测)

    目录 RANSAC算法线性回归(波斯顿房价预测) 一.RANSAC算法流程 二.导入模块 三.获取数据 四.训练模型 五.可视化 更新.更全的<机器学习>的更新网站,更有python.go ...

  6. A-05 前向选择法和前向梯度法

    目录 前向选择法和前向梯度法 一.前向选择法 1.1 余弦相似度求投影 1.2 举例 1.3 前向选择法优缺点 1.3.1 优点 1.3.2 缺点 二.前向梯度法 2.1 举例 2.2 前向梯度法优缺 ...

  7. 分库分表(6)--- SpringBoot+ShardingSphere实现分表+ 读写分离

    分库分表(6)--- ShardingSphere实现分表+ 读写分离 有关分库分表前面写了五篇博客: 1.分库分表(1) --- 理论 2.分库分表(2) --- ShardingSphere(理论 ...

  8. [转] Java 无界阻塞队列 DelayQueue 入门实战

    原文出处:http://cmsblogs.com/ 『chenssy』 DelayQueue是一个支持延时获取元素的无界阻塞队列.里面的元素全部都是"可延期"的元素,列头的元素是最 ...

  9. C语言入门-结构类型

    一.声明结构类型 #include <stdio.h> int main(int argc, char const *argv[]) { // 声明结构类型 struct date { i ...

  10. [ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-apiserver-amd64:v1.11.1]: exit status 1

    问题描述 [root@localhost ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 ...