首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

猿创征文|数据导入与预处理-第2章-numpy

使用整数索引访问元素 4.2 使用花式索引访问元素 4.3 使用布尔索引访问数组 4.4 使用切片访问元素 5 数组运算 5.1形状相同的数组运算 5.2形状不同的数组运算 5.3 矩阵相乘 5.4 数组与常量的运算...numpy中提供了多种形式的索引:整数索引、花式索引布尔索引,通过这些索引可以访问数组的单个、多个或一行元素。此外,还可以使用切片访问数组的元素。...# 使用两个花式索引访问元素 print(array_2d[[0, 2], [1, 1]]) 输出为: [2 8] ## 4.3 使用布尔索引访问元素 布尔索引指以布尔值组成的数组或列表为索引...当使用布尔索引访问数组,会将布尔索引对应的数组或列表的元素作为索引,以获取索引为True对应位置的元素。...A (2d array): 2 x 1 # 倒数第二个维度匹配 B (3d array): 8 x 4 x 3 现有两个形状分别为(3,1)和(3,0)的数组arr_one

5.7K30

pythonnumpy详细教程

花哨的索引索引技巧     NumPy比普通Python序列提供更多的索引功能。除了索引整数和切片,正如我们之前看到的,数组可以被整数数组布尔数组索引。     ...这是因为Python要求a+=1和a=a+1等同。     通过布尔数组索引     当我们使用整数数组索引数组,我们提供一个索引列表去选择。...通过布尔数组索引的方法是不同的我们显式地选择数组中我们想要和不想要的元素。     我们能想到的使用布尔数组索引最自然方式就是使用和原数组一样形状布尔数组。   ...矩阵可以被用作矩阵索引,但是通常需要数组、列表或者其它形式来完成这个任务。     像平常在Python中一样,索引是从0开始的。...基本的切片使用切片对象或整数。例如,A[:]和M[:]的求值表现得和Python索引很相似。然而要注意很重要的一点就是NumPy切片数组创建数据的副本;切片提供统一数据的视图。

1.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

图解NumPy:常用函数的内在机制

因此,常见的做法是要么先使用 Python 列表,准备好之后再将其转换为 NumPy 数组,要么是使用 np.zeros 或 np.empty 预先留下必要的空间: 通常我们有必要创建在形状和元素类型上与已有数组匹配的空数组...Python 列表与 NumPy 数组的对比 为了获取 NumPy 数组中的数据,另一种超级有用的方法是布尔索引(boolean indexing),它支持使用各类逻辑运算符: any 和 all 的作用与在...默认情况下,一维数组会被视为二维运算中的行向量,因此当用一个矩阵乘以一个行向量,你可以使用形状 (n,) 或 (1, n)——结果是一样的。...矩阵操作 合并数组的函数主要有两个: 这两个函数适用于只堆叠矩阵或只堆叠向量,但当需要堆叠一维数组矩阵,只有 vstack 可以奏效:hstack 会出现维度匹配错误,原因如前所述,一维数组会被视为行向量...三维及更高维 当你通过调整一维向量的形状或转换嵌套的 Python 列表来创建 3D 数组索引的含义是 (z,y,x)。

3.6K10

图解NumPy:常用函数的内在机制

因此,常见的做法是要么先使用 Python 列表,准备好之后再将其转换为 NumPy 数组,要么是使用 np.zeros 或 np.empty 预先留下必要的空间: 通常我们有必要创建在形状和元素类型上与已有数组匹配的空数组...Python 列表与 NumPy 数组的对比 为了获取 NumPy 数组中的数据,另一种超级有用的方法是布尔索引(boolean indexing),它支持使用各类逻辑运算符: any 和 all 的作用与在...默认情况下,一维数组会被视为二维运算中的行向量,因此当用一个矩阵乘以一个行向量,你可以使用形状 (n,) 或 (1, n)——结果是一样的。...矩阵操作 合并数组的函数主要有两个: 这两个函数适用于只堆叠矩阵或只堆叠向量,但当需要堆叠一维数组矩阵,只有 vstack 可以奏效:hstack 会出现维度匹配错误,原因如前所述,一维数组会被视为行向量...三维及更高维 当你通过调整一维向量的形状或转换嵌套的 Python 列表来创建 3D 数组索引的含义是 (z,y,x)。

3.2K20

收藏 | Numpy详细教程

如果数组被改变形状(reshape)成其它形状数组仍然是“C风格”的。NumPy通常创建一个以这个顺序保存数据的数组,所以 ravel()总是不需要复制它的参数3。...花哨的索引索引技巧 NumPy比普通Python序列提供更多的索引功能。除了索引整数和切片,正如我们之前看到的,数组可以被整数数组布尔数组索引。...这是因为Python要求a+=1和a=a+1等同。 通过布尔数组索引 当我们使用整数数组索引数组,我们提供一个索引列表去选择。...通过布尔数组索引的方法是不同的我们显式地选择数组中我们想要和不想要的元素。 我们能想到的使用布尔数组索引最自然方式就是使用和原数组一样形状布尔数组。...基本的切片使用切片对象或整数。例如, A[:]和 M[:]的求值表现得和Python索引很相似。然而要注意很重要的一点就是NumPy切片数组创建数据的副本;切片提供统一数据的视图。

2.4K20

NumPy的详细教程

花哨的索引索引技巧   NumPy比普通Python序列提供更多的索引功能。除了索引整数和切片,正如我们之前看到的,数组可以被整数数组布尔数组索引。   ...这是因为Python要求a+=1和a=a+1等同。   通过布尔数组索引   当我们使用整数数组索引数组,我们提供一个索引列表去选择。...通过布尔数组索引的方法是不同的我们显式地选择数组中我们想要和不想要的元素。   我们能想到的使用布尔数组索引最自然方式就是使用和原数组一样形状布尔数组。 ...对数组矩阵索引都必须包含合适的一个或多个这些组合:整数标量、省略号 (ellipses)、整数列表;布尔值,整数或布尔值构成的元组,和一个一维整数或布尔数组。...基本的切片使用切片对象或整数。例如,A[:]和M[:]的求值表现得和Python索引很相似。然而要注意很重要的一点就是NumPy切片数组创建数据的副本;切片提供统一数据的视图。

78200

python numpy 总结

花哨的索引索引技巧    NumPy比普通Python序列提供更多的索引功能。除了索引整数和切片,正如我们之前看到的,数组可以被整数数组布尔数组索引。   ...这是因为Python要求a+=1和a=a+1等同。    通过布尔数组索引    当我们使用整数数组索引数组,我们提供一个索引列表去选择。...通过布尔数组索引的方法是不同的我们显式地选择数组中我们想要和不想要的元素。    我们能想到的使用布尔数组索引最自然方式就是使用和原数组一样形状布尔数组。   ...对数组矩阵索引都必须包含合适的一个或多个这些组合:整数标量、省略号(ellipses)、整数列表;布尔值,整数或布尔值构成的元组,和一个一维整数或布尔数组。...基本的切片使用切片对象或整数。例如,A[:]和M[:]的求值表现得和Python索引很相似。然而要注意很重要的一点就是NumPy切片数组创建数据的副本;切片提供统一数据的视图。

77930

看图学NumPy:掌握n维数组基础知识点,看这一篇就够了

NumPy数组中获取数据的另一种超级有用的方法是布尔索引,它允许使用各种逻辑运算符,来检索符合条件的元素: ? 注意:Python中的三元比较3<=a<=5在NumPy数组中不起作用。...矩阵运算 NumPy中曾经有一个专用的类matrix,但现在已弃用,因此下面交替使用矩阵和2D数组两个词。 矩阵初始化语法与向量相似: ? 这里需要双括号,因为第二个位置参数是为dtype保留的。...默认情况下,一维数组在二维操作中被视为行向量。因此,矩阵乘以行向量,可以使用(n,)或(1,n),结果将相同。 如果需要列向量,则有转置方法对其进行操作: ?...但是当涉及一维数组矩阵之间的混合堆叠,vstack可以正常工作:hstack会出现尺寸匹配错误。 因为如上所述,一维数组被解释为行向量,而不是列向量。...pd.DataFrame(a).sort_values().to_numpy():通过从左向右所有列进行排序 高维数组运算 通过重排一维向量或转换嵌套的Python列表来创建3D数组索引的含义为(z

6K20

Numpy基础(四)(新手速来!)

NumPy 基本上是所有使用 Python 进行数值计算的框架和包的基础,例如 TensorFlow 和 PyTorch,构建机器学习模型最基础的内容就是学会使用 NumPy 搭建计算过程。...深入理解 NumPy 广播机制 广播操作是 NumPy 非常重要的一个特点,它允许 NumPy 扩展矩阵间的运算。例如它会隐式地把一个数组的异常维度调整到与另一个算子相匹配的维度以实现维度兼容。...例如一个维度为 [3,2] 的矩阵与另一个维度为 [3,1] 的矩阵相加是合法的,NumPy 会自动第二个矩阵扩展到等同的维度。...高级索引 NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整数和截取的索引数组可以由整数数组布尔数组 indexed。...这是因为 Python 中「a+=1」等于「a = a + 1」. 用布尔数组索引 当我们索引数组元素,我们在提供索引列表。

40020

Python数学建模算法与应用 - 常用Python命令及程序注解

详细解释如下: x==1 是一个布尔表达式,它生成一个布尔数组,该数组数组 x 的形状相同,元素为布尔值。...a[x==1] 使用布尔索引操作符 x==1,布尔数组作为索引来选择数组 a 中满足条件的行。布尔索引操作会返回一个由满足条件的行组成的新数组。...使用布尔数组 x==1 作为索引操作符,将其作为索引来选择数组 a 中对应位置为 True 的行。...以下是矩阵乘法的规则: 维度匹配:要进行矩阵乘法,被乘矩阵的列数必须与乘矩阵的行数相等。如果矩阵 A 的形状为 m×n,矩阵 B 的形状为 n×p,那么它们可以相乘,结果矩阵形状将为 m×p。...当 axis=1 ,计算行向量的范数;当 axis=0 ,计算列向量的范数。如果指定 axis 参数,则默认计算整个矩阵的范数。

1.3K30

NumPy之:理解广播

简介 广播描述的是NumPy如何计算不同形状数组之间的运算。如果是较大的矩阵和较小的矩阵进行运算的话,较小的矩阵就会被广播,从而保证运算的正确进行。...本文将会以具体的例子详细讲解NumPy中广播的使用。 基础广播 正常情况下,两个数组需要进行运算,那么每个数组的对象都需要有一个相对应的值进行计算才可以。...但是如果使用Numpy的广播特性,那么就不必须元素的个数准确对应。...下面的例子和上面的例子是等价的,Numpy会自动b进行扩展。 NumPy足够聪明,可以使用原始标量值而无需实际制作副本,从而使广播操作尽可能地节省内存并提高计算效率。...3 x 5 B (2d array): 3 x 1 Result (3d array): 15 x 3 x 5 下面是匹配的例子: A (1d array):

84950

NumPy之:理解广播

简介 广播描述的是NumPy如何计算不同形状数组之间的运算。如果是较大的矩阵和较小的矩阵进行运算的话,较小的矩阵就会被广播,从而保证运算的正确进行。...本文将会以具体的例子详细讲解NumPy中广播的使用。 基础广播 正常情况下,两个数组需要进行运算,那么每个数组的对象都需要有一个相对应的值进行计算才可以。...但是如果使用Numpy的广播特性,那么就不必须元素的个数准确对应。...下面的例子和上面的例子是等价的,Numpy会自动b进行扩展。 NumPy足够聪明,可以使用原始标量值而无需实际制作副本,从而使广播操作尽可能地节省内存并提高计算效率。...3 x 5 B (2d array): 3 x 1 Result (3d array): 15 x 3 x 5 下面是匹配的例子: A (1d array): 3

1K40

NumPy 1.26 中文官方指南(一)

这是因为 Python 要求a += 1等价于a = a + 1。 使用布尔数组进行索引 当我们使用(整数)索引数组数组进行索引,我们提供要选择的索引列表。...使用布尔索引,方法不同;我们明确选择数组中的哪些项和哪些项不要。...这是因为 Python 要求 a += 1 等价于 a = a + 1。 使用布尔数组进行索引 当我们用(整数)索引数组索引数组,我们提供了要选择的索引列表。...布尔索引的方法不同;我们明确选择要选择哪些数组项和哪些选择。...这是因为 Python 要求 a += 1 等价于 a = a + 1。 使用布尔数组进行索引 当我们用 (整数) 索引数组索引数组,我们提供了要选择的索引列表。

78610

NumPy 笔记(超级全!收藏√)

NumPy 切片和索引NumPy 高级索引布尔索引花式索引   NumPy 广播(Broadcast)广播的规则:   NumPy 迭代数组控制遍历顺序修改数组中元素的值使用外部循环广播迭代    ...除了之前看到的用整数和切片的索引外,数组可以由整数数组索引布尔索引及花式索引。  布尔索引  我们可以通过一个布尔数组索引目标数组。 ...布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组。  ~(取补运算符)来过滤 NaN  花式索引  花式索引指的是利用整数数组进行索引。 ...numpy.broadcast_to  numpy.broadcast_to 函数数组广播到新形状。它在原始数组上返回只读视图。 它通常连续。...arr: 要保存的数组allow_pickle: 可选,布尔值,允许使用 Python pickles 保存对象数组Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化

4.6K30

张量的基础操作

使用 torch.tensor 可以 ndarray 数组转换为 Tensor,默认共享内存。...布尔索引允许根据一个布尔张量来选择数据,而掩码索引使用一个具有相同形状的张量作为掩码来选择数据。...在进行张量索引操作,需要确保索引超出张量的形状范围,否则会引发错误。此外,由于张量通常用于存储和处理大量数据,因此高效的索引操作对于性能至关重要。...布尔索引布尔索引使用一个与目标张量形状相同的布尔张量来选择元素。在布尔张量中,True值对应的位置元素会被选中并组成一个新的张量。...接着,我们创建了一个与t形状相同的布尔张量b,并使用布尔索引选择了所有对应b中为True的元素。最后,我们结果打印出来。 ️这些就是张量的基础操作,下一节我们看看张量的其他性质~

10610

NumPy基础

参考链接: Python中的numpy.log1p 文章目录  一、创建数组二、数组操作类型1. 数组属性2. 数组索引:获取单个元素3. 切片4. 数组的变形5....布尔数组作为掩码    七、花哨索引八、数组的排序 [ NumPy version: 1.18.1 ]  import numpy as np 一、创建数组  # 1.从python列表创建数组 #...如果两个数组形状在任何一个维度上都不匹配,那么数组形状会沿着维度为1的维度扩展以匹配另外一个数组形状。如果两个数组形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么会引发异常。 ...->(3, 3) b.shape ->(3, 3) 如果a.shape为(3, 2),b扩展后依然匹配,就会引发异常 广播的应用:  数组归一化二维函数可视化  六、比较、掩码和布尔逻辑  1....布尔数组作为掩码  # 利用比较运算符得到布尔数组,通过索引特定值选出,即掩码操作 x < 5         #输出布尔数组 x[x < 5]     #输出满足条件的值 # 构建掩码 rainy

1.2K30

Python---numpy的初步认识

参考链接: Python中的numpy.rint 什么是numpyNumPyPython科学计算的基础包。 ...越来越多的Python科学计算包都是用到了NumPy数组;虽然这些库支持Python序列类型的输入,但是内部操作还是要先将其转换为NumPy数组类型,而且输出通常就是NumPy数组。...所以,如果你想要高效地使用这些Python的科学计算包,仅仅知道Python内建的序列类型是不够的,你还需要知道如何使用NumPy数组。  numpy怎么使用? ...arr.reshape(-1):也是降维  注意:维度转换简单理解就是数组中每个元素都有定位的x,y,z标识,维度转换,就是类似:y,x,z形式生成一个新的x,y,z数组  降维可以理解为,从左到右,按照每行的执行顺序数据依次放入新的数组数组的类型转变...(包含):步长 , 开始:结束(包含):步长, 开始:结束(包含):步长 ]  最后一维的切片没冒号,就是行显示,有冒号就是列显示了  普通索引数组  布尔索引数组:  names = np.array

1.1K10

Python---numpy的初步认识

参考链接: Python中的numpy.isfinite 什么是numpyNumPyPython科学计算的基础包。 ...越来越多的Python科学计算包都是用到了NumPy数组;虽然这些库支持Python序列类型的输入,但是内部操作还是要先将其转换为NumPy数组类型,而且输出通常就是NumPy数组。...所以,如果你想要高效地使用这些Python的科学计算包,仅仅知道Python内建的序列类型是不够的,你还需要知道如何使用NumPy数组。  numpy怎么使用? ...arr.reshape(-1):也是降维  注意:维度转换简单理解就是数组中每个元素都有定位的x,y,z标识,维度转换,就是类似:y,x,z形式生成一个新的x,y,z数组  降维可以理解为,从左到右,按照每行的执行顺序数据依次放入新的数组数组的类型转变...(包含):步长 , 开始:结束(包含):步长, 开始:结束(包含):步长 ]  最后一维的切片没冒号,就是行显示,有冒号就是列显示了  普通索引数组  布尔索引数组:  names = np.array

97340

基于Jupyter快速入门Python|Numpy|Scipy|Matplotlib

数组索引Array indexing Numpy 提供了多种对数组进行索引的方法。 切片Slicing:与Python列表类似,numpy数组可以被切片。...:当使用切片索引 NumPy 数组,结果数组视图总是原始数组的子数组。...要计算向量的内积、向量乘以矩阵或乘以矩阵使用 dot 函数。dot 函数既可以作为 NumPy 模块中的函数使用,也可以作为数组对象的实例方法使用。...广播Broadcasting 广播是一种强大的机制,它允许Numpy在进行算术运算处理不同形状数组。通常会遇到一个较小的数组和较大的数组,希望多次使用数组对大数组执行某些操作。...7] # [ 8 8 10] # [11 11 13]] print(y) 这种方法是有效的;但是,当矩阵x非常大,在Python使用显式循环进行计算可能会很慢。

19410
领券