# #数组迭代(遍历)
# 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]