numpy 基础知识
一、引入包
import numpy as np
二、基础方法
1. Array(数组)
- rank:数组的维数 a.ndim # 返回维度
a = np.array([1,2,3])
- type(a) #类型
- a.shape#形状
- a = a.reshape((-1,n))#其中-1代表的是3,转化形状
- b = np.zeros((n,m)) #用于创建全为0的数组,其中n,m代表形状
- c = np.ones((n,m)) # 用于创建全为1的数组
- d = np.full((n,m),value) #value数组的数字
- np.zeros([2,4]) #全为0的2×4数组
- np.ones([3,5]) #全为1 的3×5数组
eye 单位矩阵
- e = np.eye(m)# 单位矩阵
random:随机数
-
f =np.random.random((n,m))#创建0~1之间的数据数,形状的n×m矩阵
-
f = np.random.randn(n,m) #创建形状为n×m的随机矩阵,为正负小数
-
np.random.rand(2,4) #2行4列的0~1之间的随机数
-
np.random.rand(): # 产生一个随机数
-
randint:随机整数 np.random.randint(1,10,3) #0~10之间的随机数,生成3个
-
randn:生成符合标准正态分布的随机数 np.random.randn(2,4) #生成2行4列
-
choice:生成指定数组中的随机数 np.random.choice([10,20,30])# 每次生成给出数组中的一个数作为随机数
-
distribute:生成符合贝塔分布 np.random.beta(1,10,100)#1~10之间生成100个数
-
np.random.uniform(2,9,num),在2-9 之间生成num个随机数
2. 数组索引 indexing
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
给a的第二列每个数都加10,能够采用下边三种方法:
(1)a[np.arange(3),1] +=10
(2)a[np.arange(2),[1,1,1]] +=10
(3)a[[0,1,2],[1,1,1] +=10
对其中的数组进行操作:判断a中大于10 的数,两种方法
(1)result_index = a>10 #result_index 返回为true和false形式
b =a[result_index] #返回大于10的数,得到一个新的列表
(2) b =a[a>10] #直接得到大于10的数的新的列表
3.元素的数据类型:
- a = np.array([1.1,1.2])
- a.dtype #判断数组数据类型
- a = np.array([1.1,1.2],dtype=np.int64) #可以将小数直接变为整数类型
- a = np.array([1.1, 1.2])
- b = np.array(a,btype=np.int64) ##b为a取整数部分
4.数据运算及常用函数
a = np.array([1,2],[3,4])
b = np.array([5,6],[7,8])
(1)a+b等同:np.add(a,b)
(2)a-b等同:np.subtract(a,b)
(3)a*b等同np.multipy(a,b)
(4)a/b等同np.divide(a,b)
(5)np.sqrt(a) #对a每个元素开方
(6)a.dot(b):矩阵之间的乘法操作 等同:np.dot(a,b)
(7)np.concatenate((lst1,lst2),axis=0) #lst1 和lst2合并一行
(8)np.vstack((lst1,lst2)) #lst1 ,lst2 合并成两行
(9)np.hstack((lst1,lst2)) #lst1,lst2 合并成一行
(10)np.split(lst1,4) #将lst1 分成4分
(11)np.copy(lst1)#复制lst1
lst=np.arange(1,11).reshape([2,-1])#生成1~11的数组,将其划分为2行5列
(12)np.exp(lst)#指数操作
(13)np.exp2(lst) #指数平方
(14)np.sqrt(lst) #平方
(15)np.sin(lst) #sin
(16)np.log(lst) #对数 底数是自然底数
lst1 =[1,2,3,4,5,6]
lst2 =[11,12,13,14,15,16]
lst3 = np.concatenate((lst1,lst2),axis=0)
print