# #数组迭代(遍历) # import numpy as np # arr= np.array([1,2,3,4,5]) # for x in arr: # print(x) # #迭代二维 # arr1= np.array([[1,2,3],[4,5,6]]) # for x in arr1: # for y in x: # print(y)#123456 # # # #使用nditer()迭代 # for x in np.nditer(arr1): # print(x) # # #迭代不同数据类型的数组 # for x in np.nditer(arr,flags=['buffered'],op_dtypes=['S']): # print(x) #用步长迭代 # import numpy as np # arr=np.array([[1,2,3,4],[5,6,7,8]]) # for x in np.nditer(arr[:,::2]): # print(x)#1357 # # #ndenumerate进行枚举迭代 # arr1=np.array([1,2,3]) # for idx,x in np.ndenumerate(arr1): # print(idx,x) # # for idx,x in np.ndenumerate(arr): # print(idx,x) #NumPy数组连接 # import numpy as np # arr1= np.array([[1,2],[3,4]]) # arr2=np.array([[5,6],[7,8]]) # arr=np.concatenate((arr1,arr2)) # print(arr,arr.shape)#(4,2) # #沿着行(axis=1)连接两个2-D数组 # arr3=np.concatenate((arr1,arr2),axis=1) # print(arr3,arr3.shape)#(2,4) [[1 2 5 6] [3 4 7 8]] # # #使用堆栈函数连接数组 # import numpy as np # arr1= np.array([[1,2],[3,4]]) # arr2=np.array([[5,6],[7,8]]) # arr=np.stack((arr1,arr2),axis=0) # print(arr,arr.shape)#(2,2,2) # arr3=np.stack((arr1,arr2),axis=1) # print(arr3,arr3.shape) # [[[1 2] # [3 4]] # # [[5 6] # [7 8]]] (2, 2, 2) # [[[1 2] # [5 6]] # # [[3 4] # [7 8]]] (2, 2, 2) # arr3=np.hstack((arr1,arr2))#按行堆叠 # print(arr3,arr3.shape) # # [[1 2 5 6] # # [3 4 7 8]] (2, 4) # arr4=np.vstack((arr1,arr2)) # print(arr4,arr4.shape)#按列堆叠 # [[1 2] # [3 4] # [5 6] # [7 8]] (4, 2) # #沿高度堆叠(深度) # import numpy as np # arr1= np.array([[1,2],[3,4]]) # arr2=np.array([[5,6],[7,8]]) # arr=np.dstack((arr1,arr2)) # print(arr,arr.shape) # [[[1 5] # [2 6]] # # [[3 7] # [4 8]]] (2, 2, 2) # #NumPy数组拆分 # import numpy as np # arr=np.array([1,2,3,4,5,6]) # newarr=np.array_split(arr,3)#split也是一样 # print(newarr) # #[array([1, 2]), array([3, 4]), array([5, 6])] # print(newarr[0]) # print(newarr[1]) # print(newarr[2]) # # [1 2] # # [3 4] # # [5 6] # newarr1=np.array_split(arr,4)#这里使用split函数会报错 # print(newarr1)#[array([1, 2]), array([3, 4]), array([5]), array([6])] #分割二维数组 # import numpy as np # arr=np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]) # print(arr,arr.shape) # newarr=np.array_split(arr,3) # print(newarr) # [[ 1 2] # [ 3 4] # [ 5 6] # [ 7 8] # [ 9 10] # [11 12]] (6, 2) # [array([[1, 2], # [3, 4]]), array([[5, 6], # [7, 8]]), array([[ 9, 10], # [11, 12]])] # arr1=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]) # print(np.array_split(arr1,3,axis=1)) # [array([[ 1], # [ 4], # [ 7], # [10], # [13], # [16]]), array([[ 2], # [ 5], # [ 8], # [11], # [14], # [17]]), array([[ 3], # [ 6], # [ 9], # [12], # [15], # [18]])] #NumPy数组搜索 # import numpy as np # arr=np.array([1,2,3,4,5,4,4]) # x=np.where(arr==4)#检索出数组中的‘4’ # print(x)#(array([3, 5, 6]),) #搜索排序 # import numpy as np # #该方法从左侧开始排序,并且返回第一个索引,,其中数字9不再大于下一个值 # arr=np.array([6,8,9,15]) # x=np.searchsorted(arr,9) # print(x)#2 # y=np.searchsorted(arr,9,side='right') # print(y)#3 # #多个值 # z=np.searchsorted(arr,[7,10,11]) # print(z)#[1,3,3] #NumPy数组排序 import numpy as np # arr=np.array([3,2,0,1]) # print(np.sort(arr))#[0 1 2 3] # arr1=np.array(['banana','cherry','apple']) # print(np.sort(arr1))#a-z排序 # arr2=np.array([True,False,True]) # print(np.sort(arr2))#False在前 # #多维数组对最后一位进行排序 # # # # #NumPy数组过滤 # arr3=np.array([61,62,63,64,65]) # x=[True,False,True,False,False] # newarr=arr3[x] # print(newarr)#[61 63] #创建一个仅返回大于62的值的过滤器数组 # arr=np.array([61,62,63,64,65]) # #创建一个空列表 # filter_arr=[] # #遍历arr中的每个元素 # for element in arr: # #如果元素大于62,则将值设置为True,否则为false # if element>62: # filter_arr.append(True) # else: # filter_arr.append(False) # # newarr=arr[filter_arr] # print(filter_arr) # print(newarr) # # # #直接从数组创建过滤器 # filter_arr1=arr>62 # newarr1=arr[filter_arr1] # print(filter_arr1) # print(newarr1) # [False, False, True, True, True] # [63 64 65] # [False False True True True] # [63 64 65]