概述
numpy是python语言的一个扩展程序库,这个模块可以支持大量的维度数据和矩阵运算
安装:pip install numpy -i https://pypi.douban.com/simple
使用
方法:
导入模块并其别名 import numpy as np
array创建数组:np.array(列表)
如:arr1 = np.array([1,2,3,4,5])
full创建数组:np.full((数组维度),fill_value="填充值")
如arr2 = np.full((5,3),fill_value="1")
等差数列:np.linspace(起始值,结束值,num=数据个数) #根据起始值和结束值和数据数列自动计算数据个数
如:arr3 = np.linspace(1,100,num = 10)
遍历:np.arange(起始数据,结束数据,间隔)
如:arr4 = np.arange(1,100,2)
随机取值:np.random.randint(最小值,最大值,size=(数据维度))
如:arr5 = np.random.randint(0, 100, size=(3, 4))
随机获取0-1的小数:np.random.random(size=数据个数)
如:arr6 = np.random.random(size=(3,4))
属性:
ndim:获取数组的维度
shape:获取各维度的长度
size:总长度
dtype:元素长度
import numpy as np arr1 = np.array([1,2,3,4,5]) arr2 = np.full((5,3),fill_value="1") arr3 = np.linspace(1,100,num = 10) arr4 = np.arange(1,100,2) arr5 = np.random.randint(0, 100, size=(3, 4)) arr6 = np.random.random(size=(3,4)) print("arr1=%s"%arr1) print("arr2=%s"%arr2) print("arr3=%s"%arr3) print("arr4=%s"%arr4) print("arr5=%s"%arr5) print("arr6=%s"%arr6) print(arr1.ndim) print(arr1.shape) print(arr1.size) print(arr1.dtype) # 打印结果 ''' arr1=[1 2 3 4 5] arr2=[['1' '1' '1'] ['1' '1' '1'] ['1' '1' '1'] ['1' '1' '1'] ['1' '1' '1']] arr3=[ 1. 12. 23. 34. 45. 56. 67. 78. 89. 100.] arr4=[ 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99] arr5=[[97 55 89 59] [11 36 99 59] [25 89 79 64]] arr6=[[0.29921343 0.28210338 0.42484503 0.25794401] [0.65222899 0.15399972 0.06108913 0.38374279] [0.31600982 0.35209163 0.85042999 0.5903667 ]] 1 (5,) 5 int32 '''
数组操作:
获取数据:arr1[维度1所赢][维度2索引]......
切片:arr1[维度1起始值:维度1结束值:维度1间隔,.....]
变形reshape:改变数组维度,但数据长度必须保持一致 # arr1.reshape((数组维度))
级联concatenate:np.concatenate(数组1,数据2,axis=0/1) # axis为0表示纵向级联,1表示横向级联
切分split():np.split(arr,行/列号,轴):参数2是一个列表类型, 参数3横向表示0纵向表示1
排序sort():
1.np.sort(数组,axis) # axis为0表示纵向排序,1表示横向排序 # 不改变原数组
2.arr1.sort(数组,axis) # axis为0表示纵向排序,1表示横向排序 # 改变原数组
聚合操作:
如:arr1.sum()计算数组的和
常用聚合函数:sum,prod,mean,std,var,min,max,argmin,argmax,median,percentile,any,all,power
import numpy as np arr1 = np.random.randint(0, 100, size=(3, 4)) print("原数组",arr1) print("获取数据",arr1[1][2]) print("切片",arr1[0:2,1:3]) print("变形",arr1.reshape((4,3))) print("行级联",np.concatenate((arr1,arr1),axis=0)) print("列级联",np.concatenate((arr1,arr1),axis=1)) print("切分",np.split(arr1,[3],axis=0)) print("排序",np.sort(arr1,axis=0)) print("聚合函数",arr1.sum()) # 打印结果 ''' 原数组 [[25 19 1 5] [78 81 55 19] [ 5 28 28 34]] 获取数据 55 切片 [[19 1] [81 55]] 变形 [[25 19 1] [ 5 78 81] [55 19 5] [28 28 34]] 行级联 [[25 19 1 5] [78 81 55 19] [ 5 28 28 34] [25 19 1 5] [78 81 55 19] [ 5 28 28 34]] 列级联 [[25 19 1 5 25 19 1 5] [78 81 55 19 78 81 55 19] [ 5 28 28 34 5 28 28 34]] 切分 [array([[25, 19, 1, 5], [78, 81, 55, 19], [ 5, 28, 28, 34]]), array([], shape=(0, 4), dtype=int32)] 排序 [[ 5 19 1 5] [25 28 28 19] [78 81 55 34]] 聚合函数 378 '''