首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python数据分析(5)-numpy数组索引

numpy数组索引遵循python中x[obj]模式,也就是通过下标来索引对应位置元素。...在numpy数组索引中,以下问题需要主要: 1)对于单个元素索引索引从0开始,也就是x[0]是第一个元素,x[n-1]对应第n个元素,最后一个元素为x[d-1],d为该维度大小。...高级索引有两种方式:整数索引和bool值索引 2.1 bool索引 bool索引本质就相当于mask,索引数组维度大小与原数组一样,返回索引数组中为Ture位置对应值,并压平为一维数组。...2.2 整数索引 整数索引是说可以用数组索引,规则符合numpyboadcast规则,也就是每一维度索引数组会相互组合。...2.3 合理使用ix_() 函数 ix_函数是用来扩充维度,因为在整数索引中要保证每个维度索引数组维度一样,则可以直接用ix_函数来构建索引函数 import numpy as np a = np.arange

2.3K10

NumPy Cookbook 带注释源码 二、NumPy 高级索引数组概念

花式索引 # 这个代码通过将数组对角线上元素设为 0 ,来展示花式索引 # 花式索引就是使用数组作为索引索引另一个数组 # 来源:NumPy Cookbook 2e Ch2.6 import scipy.misc...height = lena.shape[0] width = lena.shape[1] # 使用花式索引将对角线上元素设为 0 # x 为 0 ~ width - 1 数组 # y 为 0...将位置列表用于索引 # 这个代码目的就是把 Lena 图像弄花 # 来源:NumPy Cookbook 2e Ch2.7 import scipy.misc import matplotlib.pyplot...# ix_ 函数将 yindices 转置,xindices 不变 # 结果是一个 height x 1 数组和一个 1 x width 数组 # 用于索引时,都会扩展为 height x width...分离数独九宫格 # 来源:NumPy Cookbook 2e Ch2.9 import numpy as np # 数独是个 9x9 二维数组 # 包含 9 个 3x3 九宫格 sudoku

76040

如何为机器学习索引,切片,调整 NumPy 数组

完成本教程后,你获得以下这些技能: 如何将你列表数据转换为NumPy数组。 如何使用Pythonic索引和切片操作访问数据。 如何调整数据维数以满足某些机器学习API输入参数维数要求。...教程概述 本教程分为 4 个部分: 从列表到数组 数组索引 数组切片 数组维数调整 1.从列表到数组 一般来说,我建议使用 Pandas 甚至使用 NumPy 函数从文件加载数据。...[[11 22] [33 44] [55 66]] 2.数组索引 一旦你数据使用 NumPy 数组进行表示,就可以使用索引访问其中数据。...我们来看一些通过索引访问数据例子。 一维数组索引 一般来说,NumPy索引工作方式与使用其他编程语言(如 Java,C# 和 C ++)时经验类似。...55 11 二维数组索引 二维数组索引与一维数组类似,区别在于用逗号分隔各个维度索引。 data[0,0] 这与基于C语言编程语言不同,其每个维度使用单独中括号运算符。

6K70

NumPy Essentials 带注释源码 三、NumPy 数组使用

# 来源:NumPy Essentials ch3 向量化 import numpy as np # NumPy 数组运算是向量化 # 数组和标量运算是每个元素和标量运算 x = np.array..., True, True, False], dtype=bool) # NumPy 使用 C 语言编译出来代码来处理数据 # 所以很快 x = np.arange(10000) ''' %timeit...[ 2, -1], [ 4, -2], [ 6, -3], [ 8, -4]]]) ''' 布尔索引 # 布尔数组可通过数组逻辑运算来获取 x...可接受布尔数组作为索引 # 布尔数组形状需要与原数组一致 # True 元素表示取该值,False 表示不取 # 结果是一维数组 x [mask] = 0 x # array([1, 3, 0, 5..., 7, 0]) # 布尔数组可以使用 sum 方法来统计 True 个数 # 原理是调用 sum 时会将 False 转换成 0 # True 转换成 1 x = np.random.random

74160

NumPy学习指南】day4 多维数组切片和索引

b中有0~23整数,共24个元素,是一个2×3×4三维数组。...你可能已经猜到,reshape函数作用是改变数组“形状”,也就是改变数组维度,其参数为一个正整数元组,分别指定数组在每个维度上大小。如果指定维度和数组元素数目不相吻合,函数将抛出异常。...[0,:,1] array([1,5, 9]) (6)如果要选取第1层楼最后一列所有房间,使用如下代码: >>>b[0,:,-1] array([3, 7, 11]) 如果要反向选取第1层楼最后一列所有房间...,使用如下代码: >>>b[0,::-1,-1] array([11, 7, 3]) 在该数组切片中间隔地选定元素: >>>b[0,::2,-1] array([3, 11]) 如果在多维数组中执行翻转一维数组命令...], [[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]]) 刚才做了些什么 我们用各种方法对一个NumPy

1.1K20

初探numpy——数组创建

numpy创建数组 使用array函数创建数组 import numpy as np array=np.array([1,2,3]) print(array) [1 2 3] 使用numpy.empty...numpy.zeros方法创建数组 numpy.zeros方法可以创建一个指定大小数组数组元素以0来填充 numpy.zeros(shape , dtype = float , order = 'C...使用numpy.ones方法创建数组 numpy.ones方法可以创建一个指定大小数组数组元素以1来填充 numpy.ones(shape , dtype = float , order = 'C'...使用numpy.eye方法创建数组 numpy.eye方法可以创建一个正方n*n单位矩阵(对角线为1,其余为0) array=np.eye(3) print(array) [[1. 0. 0....numpy.arange方法创建数组 使用numpy.arange方法创建数值范围数组并返回ndarray对象 numpy.arange(start , stop , step, dtype) 参数 描述

1.7K10

Numpy数组维度

., 23) 进行重新排列时,在多维数组多个轴方向上,先分配最后一个轴(对于二维数组,即先分配行方向,对于三维数组即先分配平面的方向) # 代码 import numpy as np # 一维数组...a = np.arange(24) print("a维度:\n",a.ndim) # 现在调整其大小,2行3列4个平面 b = np.reshape(np.arange(24), (2, 3, 4)...) # b 现在拥有三个维度 print("b(也是三维数组):\n",b) # 分别看看每一个平面的构成 print("b每一个平面的构成:\n") print(b[:, :, 0]) print(...b[:, :, 1]) print(b[:, :, 2]) print(b[:, :, 3]) # 运行结果 a维度: 1 b(也是三维数组): [[[ 0 1 2 3] [ 4 5...6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] b每一个平面的构成: [[ 0 4 8] [

1.5K30

初探Numpy花式索引

前言 Numpy中对数组索引方式有很多(为了方便介绍文中数组如不加特殊说明指都是Numpyndarry数组),比如: 基本索引:通过单个整数值来索引数组 import numpy as np...下面先来利用一维数组来举例,花式索引利用整数数组索引,那么就先来一个整数数组,这里整数数组可以为Numpy数组以及Python中可迭代类型,这里为了方便使用Python中list列表。...花式索引擅长一些不规则索引,这些不规则索引使用其它索引方式可能也可以实现,但是相比于花式索引实现会比较复杂。 比如现在有一个二维数组,二维数组形状为(3, 4),表示3名学生4课成绩。...62] [61 91 94 51]] 如果使用其它索引方式会比较复杂,比如使用基本索引需要使用concat将arr[0]和arr[1]合并起来,而切片索引只能索引连续位置。...这里我总结了一个小技巧,每一个整数数组作用一个维度,假设原始数组中有n个维度,使用花式索引,有第一个整数数组时候结果维度为n,第二个整数数组索引结果维度为(n - 1),第三个整数数组索引结果维度为

2.2K20

numpy索引技巧详解

numpy数组索引非常灵活且强大,基本操作技巧有以下几种 1....切片索引 切片索引通过切片方式来提取子集,适用于数组内连续元素提取,用法如下 >>> a = numpy.arange(6) >>> a array([0, 1, 2, 3, 4, 5]) # 一维数组用法和...花式索引 花式索引,本质是根据下标的集合,即索引数组来提取子集,与切片区别在于,花式索引可以提取非连续元素,用法如下 >>> a = numpy.arange(6) >>> a array([0,...[0, 1, 2]]) # 一轴为索引数组,另一轴为下标索引 >>> a[[0,2],1] array([1, 7]) # 两个轴同时为索引数组,需要使用ix_函数 # 第一个数组元素为行对应下标...# 第一个数组元素为列对应下标 >>> a[numpy.ix_([0,1], [0,1])] array([[0, 1], [3, 4]]) 需要注意,利用花式索引从二维数组中提取当行或者单列数据

1.9K20

Numpy索引与排序

花哨索引探索花哨索引组合索引Example:选择随机点利用花哨索引修改值数组排序Numpy快速排序:np.sort,np.argsort部分排序:分割 花哨索引 花哨索引和前面那些简单索引非常类似...花哨索引让我们能够快速获得并修改复杂数组子数据集。 探索花哨索引 花哨索引在概念上非常简单, 它意味着传递一个索引数组来一次性获得多个数组元素。...花哨索引可以和其他索引方案结合起来形成更强大索引操作: print(X) [[ ] [ ] [ ]] # 花哨索引和普通索引组合使用 X[, [, , ]...] array([, , ]) # 花哨索引和切片组合使用 X[:, [, , ]] array([[ 6, 4, 5], [10, 8, 9]]) # 花哨索引和掩码组合使用...x = np.array([, , , , ]) np.sort(x) array([, , , , ]) # 可以使用排好序数组代替原数组 x.sort() print(x) [ ]

2.4K20

在Python机器学习中如何索引、切片和重塑NumPy数组

在本教程中,你将了解在NumPy数组中如何正确地操作和访问数据。 完成本教程后,你将知道: 如何将你列表数据转换为NumPy数组。 如何使用Pythonic索引和切片访问数据。...教程概述 本教程分为4个部分; 他们是: 从列表到数组 数组索引 数组切片 数组重塑 1.从列表到数组 一般来说,我建议使用Pandas或NumPy函数从文件加载数据。...[[11 22] [33 44] [55 66]] 2.数组索引 一旦你数据使用NumPy数组表示,你就可以使用索引来访问它。...print(data[5]) 运行该示例将输出以下错误: IndexError: index 5 is out of bounds for axis 0 with size 5 一个关键区别是,你可以从数组末尾使用负向索引来检索偏移值...(3, 2) 你可以在形状维度中使用数组维度大小,例如指定参数。 元组元素可以像数组一样访问,第0个索引为行数,第1个索引为列数。

19.1K90

NumPy 数组过滤、NumPy随机数、NumPy ufuncs】

python之Numpy学习 NumPy 数组过滤 从现有数组中取出一些元素并从中创建新数组称为过滤(filtering)。 在 NumPy 中,我们使用布尔索引列表来过滤数组。...布尔索引列表是与数组索引相对应布尔值列表。 如果索引值为 True,则该元素包含在过滤后数组中;如果索引值为 False,则该元素将从过滤后数组中排除。...实例 用索引 0 和 2、4 上元素创建一个数组: import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False...因为新过滤器仅包含过滤器数组有值 True 值,所以在这种情况下,索引为 0 和 2、4。...实例 生成一个 0 到 100 之间随机浮点数: from numpy import random x = random.rand() print(x) 生成随机数组NumPy 中,我们可以使用上例中两种方法来创建随机数组

7910

Python之numpyndarray数组使用方法介绍

NumPy介绍 NumPy全名为Numeric Python,是一个开源Python科学计算库,它包括: (1)一个强大N维数组对象ndrray; (2)比较成熟(广播)函数库; (3)用于整合...C/C++和Fortran代码工具包; (4)实用线性代数、傅里叶变换和随机数生成函数 主要优点: 1.NumPy数组在数值运算方面的效率优于Python提供list容器。...2.使用NumPy可以在代码中省去很多循环语句,因此其代码比等价Python代码更为简洁。...数组索引下标都是从0开始,不在特意强调 (1)常用步长访问 语法:start:stop:step (开始下标,停止下标,步长) a = np.array([[1,2,3],[3,4,5],[4,5,6...,排序,返回下标 np.argsort(a[:,0]) #升序 [7,3,4] // np.argsort(-a[:,0]) #降序 #下面这个是按从小到大排序后索引值 [1,2,0] # 取出排序后元数据

99230

Python如何实现大型数组运算(使用NumPy

问题 你需要在大数据集(比如数组或网格)上面执行计算。 解决方案 涉及到数组重量级运算操作,可以使用NumPy库。...NumPy一个主要特征是它会给Python提供一个数组对象,相比标准Python列表而已更适合用来做数学运算。...因此,只要有可能的话尽量选择numpy数组方案。 底层实现中,NumPy数组使用了C或者Fortran语言机制分配内存。也就是说,它们是一个非常大连续并由同类型数据组成内存区域。...有一点需要特别的主意,那就是它扩展Python列表索引功能 – 特别是对于多维数组。...即便如此,在刚开始时候通过一些简单例子和玩具程序也能帮我们完成一些有趣事情。 通常我们导入NumPy模块时候会使用语句 import numpy as np 。

1.7K30
领券