和大家分享下今天学习的numpy,作为数据分析的话,numpy还是很有用的,不瞎逼逼了,直接上我今天敲得代码。
import numpy as np # #创建二维数组 # list2 = [[1,2],[3,4],[5,6]] # # twoArray = np.array(list2) # print(twoArray) # # #获取数组的维度 # print(twoArray.ndim) # # #获取数组的形状 # print(twoArray.shape) # # #获取有多少个元素 # print(twoArray.size) '''调整数组的形状''' #four = np.array([[1,2,3],[4,5,6]]) #修改的是原有的 # four.shape = (3,2) # print(four) #返回一个新的数组 # four = four.reshape(3,2) # print(four) #将多维变成一维数组 # five = four.reshape((6,),order = 'F') # print(five) # six = four.flatten(order = 'F') # print(six) #数组的形状 # t = np.arange(24) # print(t) # print(t.shape) # #转换成二维 # t1 = t.reshape(4,6) # print(t1) # #转换成三维 # t2 = t.reshape((2,3,4)) # print(t2) # print(t2.shape) #将数组转换成list # a = np.array([9,12,88,14,25]) # list_a = a.tolist() # print(list_a) # print(type(list_a)) '''Numpy的数据类型''' # f = np.array([1,2,3,4,5],dtype = np.int16) # #返回数组中每个元素的字节单位长度 # print(f.itemsize) # #获取数据类型 # print(f.dtype) # # #调整数据类型 # f1 = f.astype(np.int64) # print(f1.dtype) #随机生成小数 # import random # print(round(random.random(),2)) # # arr = np.array([random.random() for i in range(10)]) # print(arr) # print(np.round(arr,2)) '''数组的计算''' '''数组和数的计算''' # t1 = np.arange(24).reshape((6,4)) # # print(t1+2) # print(t1*2) # print(t1/2) #数组和数组之间的操作 # t1 = np.arange(24).reshape((6,4)) # t2 = np.arange(100,124).reshape((6,4)) # print(t1+t2) # print(t1*t2) #不同形状的多维数组不能计算 # t1 = np.arange(24).reshape((4,6)) # t2 = np.arange(18).reshape((3,6)) # print(t1) # print(t2) # # print(t1-t2) '''行数或者列数相同的一位数组和多维数组可以进行计算: 行形状相同(会与每一行数组的对应位相操作''' # t1 = np.arange(24).reshape((4,6)) # print(t1) # t2 = np.arange(0,6) # print(t2) # print(t1-t2) #列形状相同(会与每一个相同维度的数组的对应位操作 # t1 = np.arange(24).reshape((4,6)) # print(t1) # t2 = np.arange(4).reshape((4,1)) # print(t2) # print(t1-t2) '''数组轴的计算''' # import numpy as np # a = np.array([[1,2,3],[4,5,6]]) # #求0轴上的和 # print(np.sum(a,axis = 0)) # #求1轴上的和 # print(np.sum(a,axis = 1)) # # #计算所有的值得和 # print(np.sum(a)) #三维的数据 # a = np.arange(27).reshape((3,3,3)) # #print(a) # b = np.sum(a,axis=0) # print(b) # # c = np.sum(a,axis = 1) # print(c) # # c = np.sum(a,axis = 2) # print(c) '''数组的索引与切片''' #一维数组的操作方法 # a = np.arange(10) # #冒号分割切片参数 start:stop:setp 来进行切片操作 # print(a) # #从索引2开始到索引7停止,间隔为2 # print(a[2:7:1]) # # #如果只放置一个参数,如[2],将返回与该索引相对应的单个元素 # print(a[2]) # #如果为[2:],表示从该索引开始以后的所有项都将被提取 # print(a[2:]) '''多维数组的操作方法''' # t1 = np.arange(24).reshape(4,6) # print(t1) # #取一行 # print(t1[1]) # #取连续多行 # print(t1[1:3,]) # #取不连续的多行 # print(t1[[1,2,3]]) #取一列 # print(t1[:,1]) # #取连续的多列 # print(t1[:,1:]) #取不连续的多列 #print(t1[:,[0,2,3]]) #取多个不连续的值 #print(t1[[0,1,1],[0,1,3]]) '''数组中的数值修改''' # t = np.arange(24).reshape(4,6) # print(t) #修改某一行的值 #t[1,:] = 0 #print(t) #修改某一列的值 #t[:,1] = 0 #print(t) #修改多个不相邻的点 # t[[0,2],[0,3]] = 0 # print(t) #可以根据条件修改,比如讲小于10的值改掉 # t[t<10] = 0 # print(t) '''数组的添加、删除和去重''' #a = np.array([[1,2,3],[4,5,6]]) # print('第一个数组:') # print(a) # print('\n') # # print('向数组添加元素:') # print(np.append(a,[7,8,9])) # print('\n') # # # print('沿轴0添加元素') # # print(np.append(a,[[7,8,9]],axis=0)) # # print('\n') # # print('沿轴1添加元素') # print(np.append(a,[[7,8,9],[5,5,5]],axis=1)) '''数组中的删除''' #方法numpt.deleter # # a = np.arange(12).reshape(3,4) # print('第一个数组:') # print(a) # print('\n') # # # print('未传递Axis参数,在删除之前数组会被展开') # # print(np.delete(a,5)) # # print('\n') # # print('删除每一行中的第二列:') # print(np.delete(a,1,axis = 1)) # print('\n') '''数组去重''' # a = np.array([5,2,6,2,7,5,6,8,2,9]) # print(a) # print('\n') # # print('第一个数组的去重值') # u = np.unique(a) # print(u) # print('\n') # # print('去重数组的索引数组') # u,indices = np.unique(a,return_index = True) # print(indices) # print('\n') # # print('我们可以看到每个和原数组下标对应的数值:') # print(a) # print('\n') # # print('去重数组的下标:') # u,indices = np.unique(a,return_inverse=True) # print(u) # print(indices) # print('\n') # print('返回去重元素的重复数量:') # u,indices = np.unique(a,return_counts=True) # print(u) # print(indices) '''数组的拼接''' #根据轴连接的数组序列 a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) #要求a,b两个数组的维度相同 # print('沿轴0连接两个数组:') # print(np.concatenate((a,b),axis=0)) # print('\n') # print('沿轴1连接两个数组:') # print(np.concatenate((a,b),axis=1)) #根据轴进行堆叠 # print('沿轴0连接2个数组') # print(np.stack((a,b),axis=0)) # print('\n') # print('沿轴1连接2个数组') # print(np.stack((a,b),axis =1)) # v1 = [[0,1,2,3,4,5], # [6,7,8,9,10,11]] # # v2 = [[12,13,14,15,16,17], # [18,19,20,21,22,23]] # result = np.stack((v1,v2)) # print(result) # # result1 = np.hstack((v1,v2)) # print(result1) '''数组的分割''' #arr = np.arange(9).reshape(3,3) #将数组分为3个大小相等的子数组 # b = np.split(arr,3) # print(b) #numpy.hsplit函数用于水平分个数组,通过指定要返回的相同形状的数组数量来拆分原数组 # haar = np.floor(10*np.random.random((2,6))) # print(haar) # print('拆分后:') # print(np.hsplit(haar,3)) # # #沿着垂直轴分割 # print(np.vsplit(haar,2)) '''二维数组的转置''' # a = np.arange(12).reshape(3,4) # print('原数组:') # print(a) # print('\n') # # print('对换数组:') # print(np.transpose(a)) #与transpose一致 # a = np.arange(12).reshape(3,4) # print('原数组:') # print(a) # print('\n') # # print('转置数组:') # print(a.T) #函数用于交换数组的两个轴 t1 = np.arange(24).reshape(4,6) re = t1.swapaxes(1,0) print('原数组:') print(t1) print('\n') print('调用swapaxes函数后的数组:') print(re)
以上是我今天对于numpy的一些认识,希望对朋友们有一丝丝的帮助,那本人感觉也是很快乐的,ps:本想今天爬一下周董《说好不哭》歌曲的评论并使用matplotlib绘图的,但是今天敲了不少代码有点困了,以后再和大家分享学习下,嘎嘎!