#encoding=utf-8 import numpy as np #本节主要讲解对 numpy.array() 数据类型的操作, numpy 中的array 指的的数学中的 矩阵(行列式) matrix def main(): lst=[[1,3,5],[2,4,6]] print(type(lst)) #<class 'list'> np_lst=np.array(lst) print(type(np_lst)) #<class 'numpy.ndarray'> np_lst=np.array(lst,dtype=np.float) #bool,int,int8,int16,int32,int64,int128,uint8,uint16,uint32,uint64,uint128,folat,float16/32/64,complex64/128 print(np_lst.shape) #(2, 3) 表示数据结构是2行3列 print(np_lst.ndim) #2 表示数据结构维度是2 print(np_lst.dtype) #float64 表示数据类型 print(np_lst.itemsize) #8 代表每个元素占用的字节是8字节 因为上面的数据类型是float64 print(np_lst.size) #6 代表总共有的元素个数 此时总共有6*8 = 48个 字节占用 #2 常用数据 Some Arrays print(np.zeros([2,4]))# [[0. 0. 0. 0.] [0. 0. 0. 0.]] 数组初始化 2行4列,元素值都是0 print(np.ones([3,5]))#[[1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]] 数组初始化 3行5列,元素值都是1 print("Rand:") print(np.random.rand(2,4))#[[0.80108456 0.85873572 0.19077216 0.57489116] [0.98368305 0.54631833 0.5836906 0.5840696 ]] 数组初始化 2行4列,元素值都是0-1之间的随机数 print(np.random.rand()) # 0.5184057738632414 得到一个0-1之间的随机数 print("RandInt:") print(np.random.randint(1,10,3)) #[9 2 1] 得到3个 1-10 之间的随机整数 print("Randn:") print(np.random.randn(2,4)) #[[-0.03133145 -2.40511588 0.41716157 -0.40951324] [-0.16604123 -0.87621271 0.07418091 0.56484108]] 数组初始化, 2行4列,元素值都是 标准正态分布 之间的随机数 print("Choice:") print(np.random.choice([10,20,30]))#30 得到 [10,20,30] 中随机一个元素 print("Distribute:") print(np.random.beta(1,10,5))# [0.27342954 0.06327893 0.05248474 0.37551789 0.18812033] 得到一个贝塔分布,元素个数5 #3 Array Opes print(np.arange(1,11)) # [ 1 2 3 4 5 6 7 8 9 10] 得到一个 1-10 的数组 print(np.arange(1, 11).reshape([2,5])) # [[ 1 2 3 4 5] [ 6 7 8 9 10]] 上面的数组重塑 得到一个2行5列的数组 #np.arange(1,11).reshape([2,-1]) 的-1 表示不指定列数量,则会根据 第一个数组arange 的元素总数 除以 行数 得到列数 10/2 =5 lst = np.arange(1,5).reshape([2,-1]) print(np.array(lst))#[[1 2] [3 4]] print("exp 指数函数操作 底数是自然数e,指数是 lst:") print(np.exp(lst)) # [[ 2.71828183 7.3890561 ] [20.08553692 54.59815003]] 指数函数操作 底数是自然数e,指数是 lst print("exp2 指数函数操作 底数是2,指数是 lst:") print(np.exp2(lst)) #[[ 2. 4.] [ 8. 16.]]指数函数操作 底数是2,指数是 lst print("sqrt 开方:") print(np.sqrt(lst)) #[[1. 1.41421356] [1.73205081 2. ]] 开方 print("sin 三角函数:") print(np.sin(lst)) #[[ 0.84147098 0.90929743] [ 0.14112001 -0.7568025 ]]三角函数 print("log 对数函数操作,底数为自然数e,对数是 lst:") print(np.log(lst)) #[[0. 0.69314718] [1.09861229 1.38629436]]对数函数操作,底数为自然数e,对数是 lst lst = np.array([ [[1,2,3,4],[4,5,6,7]], [[7,8,9,10],[10,11,12,13]], [[14,15,16,17],[18,19,20,21]] ]) #axis 与数组维数 有关 ,axis的最大值是数组-1,axis取值越大,则数组的深入程度越大 print(lst.sum(axis=0))#[[22 25 28 31] [32 35 38 41]] print(lst.sum(axis=1))#[[ 5 7 9 11] [17 19 21 23] [32 34 36 38]] print("Sum(axis=2)") print(lst.sum(axis=2))#[[10 22] [34 46] [62 78]] print("Max(axis=1)") print(lst.max(axis=1))#[[ 4 5 6 7] [10 11 12 13] [18 19 20 21]] print("Min(axis=0)") print(lst.min(axis=0))#[[1 2 3 4] [4 5 6 7]] print(lst.sum()) # 252 print(lst.max()) # 21 print(lst.min()) # 1 lst1 = np.array([10,20,30,40]) lst2 = np.array([4,3,2,1]) print("Add 加法") print(lst1+lst2) #[14 23 32 41] print("Sub 减法") print(lst1-lst2) #[ 6 17 28 39] print("Mul 乘法") print(lst1*lst2) #[40 60 60 40] print("Div 除法") print(lst1/lst2) #[ 2.5 6.66666667 15. 40. ] print("Square 乘方") print(lst1**lst2) #[10000 8000 900 40] print("Dot 矩阵乘法") # print(np.dot(lst1.reshape([2,2]),lst2.reshape([2,2]))) #[[ 80 50] [200 130]] print("Concatenate 追加") print(np.concatenate((lst1,lst2),axis=0)) # [10 20 30 40 4 3 2 1] print("vstack 垂直追加") print(np.vstack((lst1,lst2)))#[[10 20 30 40] [ 4 3 2 1]] print("vstack 水平追加") print(np.hstack((lst1,lst2)))#[10 20 30 40 4 3 2 1] print("split 分成等份") print(np.split(lst1,2)) #[array([10, 20]), array([30, 40])] print("copy 拷贝") print(np.copy(lst1)) #[10 20 30 40] if __name__=="__main__": main()
如题,手敲代码。
简介
#本节主要讲解对 numpy.array() 数据类型的操作, numpy 中的array 指的的数学中的 矩阵(行列式) matrix