龙空技术网

Python数据分析学习笔记4——NumPy数组元素操作

包家三少 47

前言:

今天兄弟们对“python取数组元素”都比较注重,大家都想要剖析一些“python取数组元素”的相关内容。那么小编也在网上网罗了一些关于“python取数组元素””的相关知识,希望看官们能喜欢,你们一起来了解一下吧!

元素访问

与列表的操作一样。

# -*- coding:utf-8 -*-import numpy as npprint('一维数组')nums = [1,2,3,4,5,6,7,8]   #一维数组arr = np.array(nums)print('数组',arr)print('数组的第1个元素:',arr[0])print('数组的第3个元素:',arr[2])print('----------分隔线----------')print('二维数组')nums = [[1,2,3,4,5],[6,7,8,9,10]]  #二维数组arr1 = np.array(nums)print('数组',arr1)#下述两种方式都是正确的print('数组的第1行第2个元素:',arr1[0][1])print('数组的第2行第4个元素:',arr1[1,3])print('----------分隔线----------')print('负数下标')nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]  #二维数组arr2 = np.array(nums)print('数组',arr2)print('数组的最后1行最后1个元素:',arr2[-1][-1])print('数组的倒数第2行倒数3个元素:',arr2[-2,-3])

运行结果

元素修改使用下标修改元素值二维数组可以修改一整行或一整列的元素

 -*- coding:utf-8 -*-import numpy as npprint('一维数组')nums = [1,2,3,4,5,6,7,8]   #一维数组arr = np.array(nums)print('原数组',arr)arr[3] = 10    #修改第4个元素print('修改后的数组',arr)print('----------分隔线----------')print('二维数组')nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]  #二维数组arr1 = np.array(nums)print('原数组\n',arr1)arr1[1][3] = 99 #修改第2行第4个元素print('修改后单个元素后的数组:\n',arr1)arr1[2] = [99,88,77,66,55] #修改第3行元素print('修改后整行元素后的数组:\n',arr1)arr1[:,2] = [99,88,77] #修改第3列元素print('修改后整列元素后的数组:\n',arr1)

运行结果

元素添加

语法:numpy.append(arr,value,axis = n)

arr:数组value:需要添加的元素axis:用于定义沿着那一条轴进行操作append()不修改原数组,返回一个新数组

# -*- coding:utf-8 -*-import numpy as npprint('一维数组')nums = [1,2,3,4,5,6,7,8]   #一维数组arr = np.array(nums)print('原数组\n',arr)reslut = np.append(arr,10)print('修改后的数组',reslut)print('----------分隔线----------')print('二维数组')nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]  #二维数组arr1 = np.array(nums)print('原数组\n',arr1)result = np.append(arr1,[[55,66,77,88,99]],axis = 0)  #axis = 0 表示沿着纵轴方向操作,改变行print('axis = 0 修改后的数组:\n',result)result = np.append(arr1,[[55],[66],[77]],axis = 1) #axis = 1 表示沿着横轴方向操作,改变列print('axis = 1 修改后的数组:\n',result)result1 = np.append(arr1,[[55],[66],[77],[88]])  #axis 为空, 将两个数组变为一维数组后合并result2 = np.append(arr1,[[55,66],[77,88]])result3 = np.append(arr1,[[55,66,77,88]])print('axis 为空 修改后的数组:\n',result1)print('axis 为空 修改后的数组:\n',result2)print('axis 为空 修改后的数组:\n',result3)

运行结果

元素删除

语法:numpy.delete(arr,m,axis = n)

arr:数组m:表示第m+1行 或 m+1列axis:对于二维数组来说, axis=0表示删除第m+1行,axis=1表示删除第m+1列delete()不修改原数组,返回一个新数组

# -*- coding:utf-8 -*-import numpy as npprint('一维数组')nums = [1,2,3,4,5]   #一维数组arr = np.array(nums)print('原数组\n',arr)reslut = np.delete(arr,3)#删除第4个元素print('修改后的数组',reslut)print('----------分隔线----------')print('二维数组')nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]  #二维数组arr1 = np.array(nums)print('原数组\n',arr1)result = np.delete(arr1,2,axis = 0)  #axis = 0 删除第3行元素print('axis = 0 修改后的数组:\n',result)result = np.delete(arr1,2,axis = 1) #axis = 1 删除第3列元素print('axis = 1 修改后的数组:\n',result)

运行结果

数组切片

使用切片来获取数组的某一部分

截取范围 : [m,n)

# -*- coding:utf-8 -*-import numpy as npprint('一维数组')nums = [1,2,3,4,5]   #一维数组arr = np.array(nums)print('原数组\n',arr)print('切片后的数组',arr[1:3]) #切片获取第2到第3个元素print('----------分隔线----------')print('二维数组')nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]  #二维数组arr1 = np.array(nums)print('原数组\n',arr1)print('获取第1行所有元素\n',arr1[0,:])  #获取第1行所有元素print('获取第1列所有元素\n',arr1[:,0])  #获取第1列所有元素print('获取第1行第2到第3个元素\n',arr1[0,1:3])#获取第1行第2到第3个元素print('获取第1行 第2行及第1列第2列第元素\n',arr1[0:2,0:2])#获取第1行 第2行及第1列第2列第元素

运行结果

# -*- coding:utf-8 -*-import numpy as npprint('多维数组')nums = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]   #三维数组arr = np.array(nums)print('原数组\n',arr)print('NumPy支持使用...来表示剩余的轴')print(arr[0,...])     #等价与 arr[0,:,:]print(arr[...,0])    #等价与 arr[:,:,0]print(arr[:,0,:])   

运行结果

学习参考资料:《从0到1Python数据分析》

标签: #python取数组元素