蓝绝

博客园 首页 新随笔 联系 订阅 管理

三、ndarray的基本操作  索引和切片

1.索引维与列表完全一致 多维时同理

2.切片维与列表完全一致多维时同理

将数据反转,例如[1,2,3]--->[3,2,1]

两个::进行切片

-------------------------------------------------------------------------------------------------------------------------------

1.索引维与列表完全一致 多维时同理

#列表的访问方式
arr2 = np.array ([[1, 2, 3], [4, 5,6]]) 
arr2[0][0]

#运行输出 1
#numpy特有的访问方式
arr2 = np.array ([[1, 2, 3], [4, 5,6]]) 
arr2[0,0]
#运行输出  1

#  高级用法

#2. 使用BOOL列表作为索引访问, True对应的值会被返回 
arr1=np.array ([[1, 2, 3, 4, 5]])
bool_list = [True,False,True,False,True] 
arr1[0,bool_list]
#arr1[0][bool_list]
#运行输出   array([1, 3, 5])
#eg获取大于3的数
arr2=np.array ([1, 2, 3, 4, 5])
arr2>3

#运行输出   array([False, False, False,  True,  True])

arr2[arr2>3]

#运行输出   array([4, 5])

2.切片维与列表完全一致多维时同理

arr3=np.random.randint(0,100,size=(5,6))
arr3
array([[84, 69, 67, 45, 55, 32],
       [35, 85, 36, 47, 34, 40],
       [10,  8, 63, 21, 85, 80],
       [49, 16, 23, 75, 96, 12],
       [67, 36, 26,  6, 36, 87]])
#行切片
arr3[0:2]
array([[84, 69, 67, 45, 55, 32],
       [35, 85, 36, 47, 34, 40]])
#列切片   不论多少维,每一个维度的切片范围都是用冒号表示,使用逗号分割,最后一个维度可以省略,但是被切片的维度之前的维度不能省
arr3[:,0:2]
array([[84, 69],
       [35, 85],
       [10,  8],
       [49, 16],
       [67, 36]])

#将数据反转,例如[1,2,3]--->[3,2,1]

#将数组反转
arr4=np.array([1,2,3,4,5])
arr4
arr4[::-1]
array([5, 4, 3, 2, 1])

 

posted on 2022-11-13 13:58  蓝绝  阅读(135)  评论(0编辑  收藏  举报