numpy 索引多个_21_手把手教你学Python之Numpy(上)

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第1张图片

NumPyNumerical Python)是高性能科学计算数据分析的基础包。它极大的简化了多维数组的操纵和处理,大部分数据处理软件包都依赖于Numpy,例如pandasmatplotlibscikit-learn等。

Numpy的一些特点:

  • NumPy 提供了对数组和矩阵进行快速运算的标准数学函数
  • NumPy 提供了很多矢量运算的接口,比手动用循环实现速度要快很多
  • NumPy 开放源代码,由许多协作者共同维护开发。
  • ……

Python标准库中默认不包含 Numpy,推荐两种安装方式:

  • 使用Anaconda软件,简化包的管理,自带Numpy、matplotlib等数据处理包;
  • 使用pip命令安装:pip install numpy

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第2张图片

多维数组对象-ndarray

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是用于存放同类型元素的多维数组,ndarray 中的每个元素在内存中占有相同大小的区域。创建ndarray对象时,可以通过dtype指定数据类型,如果没有指定,则会根据元素内容自动确定

创建ndarray的方法很多,例如可通过array()asarray()将列表或元组转化为ndarray,通过arange()生成一组数,通过ones()zeros()full()生成元素相同的一些特殊数组,通过linspace()logspace()分别生成等差和等比数组等,方法详细说明如下:

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第3张图片

注意:指定数组形状时,只能是整数如8、12等表示一维数组中元素的个数或者整数序列如[3,5],(2, 3, 4)等,序列的长度表示维度,每个元素的值表示对应维度上轴的大小

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第4张图片

多维数组对象ndarray的主要属性包括shape(形状)、ndim(维度)、size(元素个数)、dtype(元素类型)、itemsize(每个元素所占字节数)、nbytes(整个数组所占字节数)等。各自含义和用法如下:

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第5张图片

多维数组对象ndarray的主要方法包括reshape(形状)、flatten(将多维数组压平为1维数组)、astype(指定元素类型)、sum(求和)、cumsum(累积求和)、max(求最大值)、min(求最小值)、mean(求平均值)等。方法的详细介绍及其用法如下:

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第6张图片

ndarray 对象的索引和切片操作,与序列的索引和切片操作类似。索引支持正向索引从左到右,下标从0开始不断增大)和反向索引从右到左,下标从-1开始不断减小)。切片操作可通过slice函数,设置start、stop和step参数进行;也可以通过冒号分隔切片参数 start:stop:step 进行。对于多维数组来说,可以分别对每一个维度进行索引和切片多个维度的索引和切片之间用逗号隔开

序列进行切片操作后,会生成一个新的序列,相当于是将相应的元素复制出来组成了一个新的序列。与此不同,ndarray切片结果并不会单独生成一个新的ndarray,访问的仍然是原始的ndarray中的数据,因此对切片结果的修改会影响到原始数据

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第7张图片

下面以一个具体例子,来理解索引和切片的用法。

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第8张图片

此外,Numpy中还提供了一些特殊的索引方式,例如整数数组索引布尔索引花式索引

整数数组索引主要用于同时访问多个无规律的元素,用整数数组作为索引,一个整数数组表示一个维度,有多少个维度就需要多少个整数数组,整数数组中用于存放各元素在这一维度的索引

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第9张图片

布尔索引通过布尔运算来获取符合一定条件的元素,对一个多维数组使用布尔运算时,会对数组中的每一个元素执行布尔运算,最终得到一个元素为True或False的多维数组,然后将这个多维布尔数组作为索引,此时会取出True对应位置上的数据

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第10张图片

花式索引根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应位置的元素;如果目标是二维数组,那么就是对应下标的行

46ee200eaadd82ccf9ca8604fd70dcb7.png

如果需要按照自定义的顺序获取某些行列的数据,可使用np.ix_方法,用法为: a[np.ix_([行序],[列序])],注意和整数数组索引的区别。

5e9ba8774320fa8ab1d49dec73840edc.png

更多详细内容可查看视频讲解,手把手教你学Python(入门基础)课程完整视频腾讯课堂链接:https://ke.qq.com/course/1581404?tuin=4c5cc1bc

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第11张图片

更多Python学习资料请加入群、联系助理老师或关注微信公众号获取,我们会不定期更新!

numpy 索引多个_21_手把手教你学Python之Numpy(上)_第12张图片

你可能感兴趣的:(numpy,索引多个,numpy序列预处理dna序列,python,对ndarray全体除以一个数,python,最大值的索引)