目录
标题一numpy中 的函数
eye函数
random函数
zeros函数
arange函数
ones函数
array函数:
numpy.unravel_index函数
reshape和 vstack
数组操作之分割数组split
numpy中的广播原则
numpy库中数学运算函数
排列函数
搜索函数
numpy库的介绍:NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 。
3*3对角矩阵
import numpy as np
arr=np.eye(3,dtype='i4')
print(arr)
导入numpy库
eye:函数就是创建一个对角线为1其他位置为0的矩阵:
其中dtype=‘i4'表示输出的是整型矩阵
输出结果:
# 创建一个长度为10的数组,值为0~1之间,不包含首尾
import numpy as np
arr = np.random.random(10)
print(arr)
导入numpy库
random函数作用:在0-1之间创建10个随机数:
输出结果:
# 创建一个长度为10的0数组,第5个值为1
import numpy as np
arr = np.zeros([50])
arr[4]=1
print(arr)
zeros函数作用:创建长度是自定义的一个数组。索引位置从0开始数:第5位也就是第4位为1;
numpy.zeros(shape(定义一个形状),dtype(定义输出类型)order(C行,F列)
# 创建一个值从30到50.步长为-2的数组
import numpy as np
arr = np.arange(50, 30, -2)
print(arr)
arange(start,stop,step,dtype)起始,终止,步长,类型,不设置步长就为1
本题是起始值为30,终止值为50,步长为-2,正常顺序是从左往右,当步长为-2时就变成从右往左,倒着来进行。
arange函数的作用就是创建数值并返回数组对象,也就是还是创建一个数组。
输出结果为:
# 创建一个四边为1,中间为0的二维数组
import numpy as np
arr = np.ones([3, 3], dtype='i4')
arr[1, 1] = 0
print(arr)
ones函数就是创建一个数组,然后其中的元素都是1.arr[1,1]就是第2行第2列,按照索引从0开始就是第一行第一列。
输出结果为:
# 创建一个2*3的二维数组。并分别输出维度,行数,列数,元素个数。
import numpy as np
arr=np.array([[1,2,3],[4,5,6,]])
print(arr.shape)
print(arr.size)
print(arr.ndim)
引用array函数,创建一个二维数组
输出这个数组的类型(shape).行数列数(size).元素(ndim)
输出结果为:
# 创建一个6*7*8的三维矩阵,求100个元素的索引是什么?
import numpy as np
import numpy as np
print(np.unravel_index(99,(6,7,8)))
arry = np.random.randint(1,10,size=(2,3))
print(arry[:,::-1])
numpy.unravel_index(indices, dims)函数作用:返回indices中的元素在维度为dims的数组中的索引值,默认按元组的形式返回
print(arry[:,::-1])就是倒着来,反向打印数据,间隔为-1。randint:上限为10,下限为1.2行3列的一个矩阵。
运行结果:
# 垂直堆叠数组a和数组b。
import numpy as np
a=np.arange(10).reshape([2,-1])
print(a)
print("/n")
b=np.repeat(1,10).reshape([2,-1])
print(b)
print("/n")
x=np.vstack((a,b))
print(x)
reshape:不改变数据类型,改变数据形状 :vstack:对矩阵进行垂直输出。
运行结果:
import numpy as np
a=np.arange(12).reshape(3,4)
print(a)
b=np.split(a,3)
print(b)
建立一个12个数矩阵为3行4列,再运用nump库中的split函数进行分割,再输出。
numpy中的广播原则就是两个二维数组相加,在系统内部会变成一样的格式去相加然后输出结果。
import numpy as np
a=np.array([[0,1,2,3],[0,1,2,3],[1,2,4,5]])
b=np.array([[1,2,3,4]])
print(a+b)
平均数(average):def average(a, axis=None, weights=None, returned=False)
import numpy as np
zhang = np.array([[75,70], [65,60], [55,60]])
a = np.array([6,4])
print(np.average(zhang[0], weights=a))
print(np.average(zhang[1], weights=a))
print(np.average(zhang[2], weights=a))
print("/n")
最大值(amax):ndarray or scalar
import numpy as np
c = np.array([[90,80,60],
[75,65,55],
[55,66,77]])
print('每个同学的最高分')
print(np.amax(c,axis = 1))
print(np.amax(定义的名字,按行或者按列输出)
四舍五入值(around):返回指定数字的四舍五入值。numpy.around(a,decimals=0)
向下取整(floor):返回小于或者等于指定表达式的最大整数。numpy.floor(定)
向上取整(ceil):向上取整,返回大于或者等于表达式的最小整数。
加减乘除,还有向上取整,向下取整的所有代码,都是替换其中的函数即可。
reciprocal:返回参数元素的倒数。
power:将一个输入数组中的元素作为底数,并计算它与第二个输入数组中相应元素的幂
mod:输入数组中相应元素的相除后的余数
amin()和amax:计算数组中的元素沿指定轴的最小值和最大值。
ptp()计算数组中元素最大值与最小值的差。
percentile():表示小于这个值的观察值的百分比。百分位数是统计中使用的度量,表示小于这个值的观察值的百分比
median():表示计算数组a中元素的中位数
mean():返回数组中元素的算术平均值。axis=0就是按列输出,也就是按第一维度进行输出
如果axis=1就是按行输出,也就是按行输出,按第二维度进行输出。
mean():返回数组中元素的算术平均值。
var():计算数组中的方差。std():计算标准差。mean():表示返回数组中元素的算术平均值
average():根据在另一个数组中给出的权重计算数组中元素的加权平均值。
sort(a,axis,kind,order):a:要排序的数组。axis=0按第一维度排序。axis=1按第二维度,排序算法,默认为‘'quicksort'。order;如果数组包含字段,则是要排序的字段展示代码如图。
argsort():返回的是数组值从小到大的索引值
argmax()和argmin():分别是沿0轴的最大值和沿1轴的最大值。沿轴0的最小值,沿轴1的最小值
nozero():返回输入数组中非零元素的索引
where:返回输入数组中满足给顶条件的元素的索引
extract()根据某个条件从数组中抽取元素。