专业编程基础技术教程

网站首页 > 基础教程 正文

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

ccvgpt 2024-08-07 19:01:50 基础教程 22 ℃

元素访问

与列表的操作一样。

# -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
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])


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


元素修改

  • 使用下标修改元素值
  • 二维数组可以修改一整行或一整列的元素
 -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
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 np
print('一维数组')
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 np
print('一维数组')
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 np
print('一维数组')
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 np

print('多维数组')
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数据分析》

Tags:

最近发表
标签列表