数组的索引

import  numpy as  np

#创建一个一维数组
# arr = np.arange(16)
# print("arr:\n",arr)
# print("arr 的 形状:\n",arr.shape)
# print("arr 的 ndim:\n",arr.ndim)

# 获取单个元素---可以通过下标来访问单个元素
# data = arr[4]
# print("data:\n",data)
# data = arr[-1]
# print("data:\n",data)
# 获取多个元素---可以通过切片来获取,不包含结束位置
# data = arr[4:13:2]
# 如果使用下标形式来获取多个元素,那么需要注意:需要将多个下标组成一个元素传进去--即组成列表
# data = arr[[4,6,8,10,12]]
# print("data:\n",data)

# 二维数组的索引
arr = np.arange(16).reshape((4,4))
print("arr:\n",arr)
print("arr 的 形状:\n",arr.shape)
print("arr 的 ndim:\n",arr.ndim)

# 获取第一行元素
# data = arr [:,0]# 逗号之前代表行,逗号之后代表列,而且这个叫行列同时索引
# data = arr [:,0:1]# 逗号之前代表行,逗号之后代表列,而且这个叫行列同时索引
# print("data:\n",data)

# 获取 0 2 行的 前两列
# data = arr[[0,2],0:2:1]
# data = arr[[0,2],[0,1]] # 这个与上一行结果不同
# 这个是 一一对应去取
# data = arr[[0,2],[0,1,2]]  # 错误的,如果这样取值,前后的形状必须一致
# print("data:\n",data)
# data = arr[::2,0:2:1]

# data = arr[[1,2],1:3]
# print("data:\n",data)
# arange 报错   array 是可以的
# arr_mask = np.array([0,1,0,3],dtype=np.bool)
# print(arr_mask)
# # --->[0,1,2,3]--->[False True True True]
# # 利用bool数组进行切片
# data = arr[arr_mask,:] #第0行不见了
# # data = arr[:,arr_mask] # 第0列不见了
# print("data:\n",data)

# bool 数组做索引,False 为丢弃, True 为选择

# 三维 或者多维数组
"""
一维  arr[下标/切片]
二维  arr[行下边或者切片,列下标或者切片] 
三维  arr[块下标或者切片,行,列]
四维  arr[堆下标或者切片,块,行,列]
"""

# 注意:
#  如果使用下标,会降维度,如果使用切片,维度不变
# bool数组进行索引的时候,需要索引的是二维数组,那么你的bool数组是一维的,
# bool数组的长度 需要与你要切的维度的长度一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值