常见属性
:dtype
查看数组元素类型和shape
查看数组尺寸
常见方法
:astype
用于转换数组元素的类型和reshape
用于转换数组尺寸
核心概念:轴
。一维就只有0轴;二维行的增长方向是0轴,列的增长方向是1轴;三维,层的增长方向是0轴,行的增长方向是1轴,列的增长方向是2轴。
理解
:这个三维矩阵打印出来,两个空格隔开了三层。每一层相当于一个二维数组,自上而下是行增长的方向,自左而右是列增长的方向。
例子:各种求和
广播和矢量化
:numpy数组想要给数组全部元素+1的话就是直接a+1就可以了;两个形状相同的数组相加就是直接a+b就好了。
蛮力构造
:直接np.array()
,核心参数就是数据object
和类型dtype
特殊矩阵
:zeros
函数生成0矩阵 、ones
函数生成1矩阵、empty
函数生成随机元素的矩阵 、eye
函数生成对角矩阵和fill
函数对所有矩阵元素进行填充
随机数值
:random
函数生成[0,1)的元素 、randomint
函数生成[low,high)之间的整数元素,rand函数
生成均匀分布,randn函数
生成正态分布和normal
函数生成正态分布的数据
定长分割:arange
函数和linspace
函数都用于生成一个序列
重复构造
:repeat
函数用于重复数组元素 和tile
函数用于重复数组
注:切片返回的数组不是复制,而是指向与原数组相同的内存的
一维数组的索引与切片
:与list一样
多维数组的索引与切片
:
改变数组结构
:reshape
函数、resize
函数将数组变为指定结构 、ravel
函数将多维数组一维化和transpose
函数和’t’函数一样,都是对矩阵进行转置。
注
:resize
函数是会改变原数组的,其余函数都是返回一个对应的视图。
数组合并
:numpy的数组创建之后就不能改变元素数量了,因此想要动态改变元素数目就只能使用合并或者拆分这种方式。
numpy中也保留了append函数
,但是这个方法是numpy的了,不是数组的,并且他的效果是合并两个数组。
最常用的还是stack函数
及其兄弟hstake函数
水平合并、vstack函数
垂直合并、dstack函数
深度合并
stack函数
才是YYDS,毕竟用的多的是tensor,将两个shape相同的数组在i轴进行合并,这里是四个轴0,1,2,3
数组拆分
:不常用,还不如切片方便
排序
:sort函数
返回输入数组的排序副本、argsort函数
返回数组值从小到大的索引号
他们的参数都一样,第一个是待排序数组,第二个axis是排序的轴,默认是最后一轴。别的都不常用。
最大值和最小值查找
:argmax函数
、argmin函数
返回数组中最大值和最小值的索引,如果是多维数组,这个索引就是数组转换成以一维之后的索引
非零元素查找
:nonzero函数
返回描述位置信息的元组
使用逻辑表达式查找
:返回同样shape的bool数组
条件查询
:where
。对于一维数组返回满足条件的元素索引,对于多维数组,返回满足条件的元素在k轴上的索引号。也就是n维数组,返回n个元组,每个元组代表着满足条件的元素对应维度上的索引。
筛选
:where函数
返回索引元组、逻辑表达式
返回bool数组、整形数组
重要常量
:nan
与inf
常用数学函数
:
统计函数
:注意有些方法处理nan是会出问题的
插值函数
:一维插值函数interp函数
,假设原来有了数据_x和_y,现在新产生了数据x,使用interp函数就可以得到对应的y了
用于处理缺失值和nan