:计算对数
ceil:计算每个元素的最高整数值 (大于等于这个数的最小整数)
floor :计算每个元素的最小整数值(小于等于这个数的最大整数)
sign:计算每个值的符号值:1(正数) 0(0)-1(负数)
二元通用函数:
add(+):将对应元素相加
subtract(-):在第二个数组中,将第一个数组中包含的元素去掉
multiply(*) :将属组中对应的元素相乘 *
divide(/),floor_diveide 除或整除
power(**):将第二个数组的元素作为第一个数组对应元素的幂次方
maximum,fmax 逐个元素计算最大值,fmax忽略NAN
minimun,fmax:逐个元素计算最小值,fmin忽略NAN
mod:按元素的求模计算(求除法的余数)
1 x = np.array([1,2,3])
2 y = np.array([4,5,6])
3 print("数组相加的结果:",np.add(x,y)) #相当于+ [5 7 9]
4 print("数组相减的结果:",np.subtract(x,y)) #相当于- [-3,-3,-3]
5 print("数组相乘的结果:",np.multiply(x,y)) #相当于* [ 4 10 18]
6 print("数组相除的结果:",np.divide(x,y)) #相当于/ [0.25 0.4 0.5 ]
7 print("数组幂运算结果:",np.power(x,y)) #相当于** [ 1 32 729]
8 print("数组求最大值:",np.maximum(x,y)) #求x,y中数组元素的最大值
9 print("数组求模:",np.mod(x,y)) #相当于%
9.ufunc函数的广播机制
广播是指不同形状的数组之间执行算术运算的方式、当使用ufunc函数进行数组计算时,ufunc会对两个元素对应元素进行计算。进行这种操作的前提是两个数组的shape一样。当两个数组shape不一样时,Numpy就会执行广播机制。需要遵循四个原则:(1)让所有的输入数组向其中shape最大的数组看齐,shape中不足的地方通过在前面补1.
(2)输出数组的shape是输入数组shape的各个轴上的最大值.(3)如果输入数组的某个轴和输出数组的对应轴的长度相同或者长度为一,则这个数组能够用来计算,否则出错.
(4)当输入数组的某个轴长度为1时,沿着此轴运算时使用此轴上的第一组值。
1 arr1 = np.array([[0,0,0],[1,1,1],[2,2,2]])
2 arr2 = np.array([1,2,3])
3 print(arr1+arr2)
4 arr3 = np.array([[0,0,0],[1,1,1],[2,2,2]])
5 arr4= np.array([1,2,3]).reshape(3,1)
6 print(arr3+arr4)
10、利用Numpy进行统计分析
1.读、写文件:
Numpy文件的读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式.save函数主要以二进制的格式保存数据,load函数从二进制的文件中读取数据
基本语法:np.save(file,arr,allow_pickle=True,fix_imports=Trues) file为文件名称,arr表示需要保存的数据,如果需要保存多个数组至一个文件中,可以使用savez函数
data = np.load(file) 从二进制文件中获取数据
np.savetxt(file,X,delimeter=' ,')需要保存数据至文本中,file表示文件名,X表示保存的数据,delimeter表示分隔符。
np.loadtxt(file) 从文本中获取数据
2.简单的统计分析
1 import numpy as np
2 arr1 = np.array([1,3,4,8,6])
3 np.sort(arr1) #对arr1进行排序
4 arr2= np.random.randint(1,9,(3,3))
5 arr2.sort(axis=1) #对arr2列向排列
6 print(arr2)
7 arr2.sort(axis=0) #对arr2进行横向排列
8 arr3 = np.array([1,1,2,5,3,6,4,6,6,8])
9 print(np.unique(arr3)) #相当于 np.sort(set(arr3)) ,对arr3进行去重并排序
10 print(np.tile(arr1,3)) #对整个arr1数组进行复制,3 代表3次
11 print(np.repeat(arr1,2,axis=0)) #对arr1中的元素进行横向复制2次
12 print(np.repeat(arr1,2,axis=1)) #对arr1中元素进行列向复制2次
13 print("arr1数组的和:",np.sum(arr1)) #计算数组的和
14 print("arr2数组列向的和",np.sum(arr2,axis=0)) #计算arr2列向的和
15 print("arr2数组横向的和",np.sum(arr2,axis=1)) #计算arr1横向的和
16 print("arr1数组的平均值:",np.mean(arr1)) #计算数组的平均值
17 print("arr2数组的纵向的平均值",np.mean(arr2,axis=0)) #计算列向的平均值
18 print("arr2数组的横向平均值:",np.mean(arr2,axis=1)) #计算横向的平均值
19 print("方差:",np.var(arr1)) #计算arr1的方差
20 print("标准差:",np.std(arr1)) #计算arr1的标准差
21 print("数组的最大值",np.max(arr1)) #计算arr1的最大值
22 print("数组的最小值:",np.min(arr1)) #计算arr1的最小值
23 print("最大值的索引:",arr1) #返回最大值的索引
24 print("最小值的索引:",arr1) #返回最小值的索引
25 print("累计求和:",np.cumsum(arr1)) #累计求和
26 print('累积:',np.cumprod(arr1)) #累乘
View Code
11线性代数
1 import numpy as np
2 arr1 = np.array([[1,2,3],[2,3,4]])
3 arr2 = np.array([[1,2],[2,3],[3,4]])
4 print(arr1@arr2) #点乘积
5 print(np.dot(arr1,arr2)) #点乘积
6 print |