Numpy数组索引与切片

 

Numpy数组索引与切片

1. `ndarray`对象的内容可以通过`索引`或`切片`来获取和修改,就像 Python 的内置容器对象一样。
2. `一维数组`:一维数组比较简单,看起来和python列表很类似。
3. `二维数组`:每个索引值对应的元素不在是一个值,而是一个一维数组
4. `多维数组
 
import numpy as np
a = np.arange(0,9)
print('一维数组操作')
print(a)
print('索引:',a[2])
print('切片:',a[2:5])
a[2:5]=88
print('赋值:',a)
print('*'*30)

print('二维数组操作')
b = a.reshape(3,3)
print(b)
print('索引:获取的一维数组',b[2]) #获取的一个一维数组
print('分割列表去获取的某一个值',b[2,2]) #获取的某一个值
print('通过递归的方式获取的某一个值',b[2][2]) #获取的某一个值
print('按列获取切片:',b[:,2])
print('按行获取切片:',b[2,:])
print('*'*30)

print('多维数组操作')
c = np.arange(1,19).reshape(3,3,2)
print(c)
print('索引:获得一个二维数组 获取第1层',c[2])
print('索引:获得一个一维数组 获取第1层的第1行',c[2,2])
print('索引:获得一个值',c[2,2,1])
 
一维数组操作
[0 1 2 3 4 5 6 7 8]
索引: 2
切片: [2 3 4]
赋值: [ 0  1 88 88 88  5  6  7  8]
******************************
二维数组操作
[[ 0  1 88]
 [88 88  5]
 [ 6  7  8]]
索引:获取的一维数组 [6 7 8]
分割列表去获取的某一个值 8
通过递归的方式获取的某一个值 8
按列获取切片: [88  5  8]
按行获取切片: [6 7 8]
******************************
多维数组操作
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]

 [[13 14]
  [15 16]
  [17 18]]]
索引:获得一个二维数组 获取第1层 [[13 14]
 [15 16]
 [17 18]]
索引:获得一个一维数组 获取第1层的第1行 [17 18]
索引:获得一个值 18
******************************
 

Numpy布尔索引和花式索引

1. **布尔索引**:指的是一个由布尔值组成的数组可以作为一个数组的索引,返回的数据为`True`值对应位置的值。**布尔值数组长度必须和数组轴索引长度一致**。
2. **花式索引**:指的是用`整数数组`进行数据索引。根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应位置的元素;如果目标是二维数组,那么就是对应下标的行
`花式索引和切片不一样,它总是将数据复制到一个新的数组中。!!!`
 
import numpy as np
a = np.arange(1,10).reshape(3,3)
np.random.shuffle(a)
print(a)
print('布尔索引先返回一个true、false类型数据',a>5)
print('在根据结果返回元素值为True的元素',a[a>5],end='\n**************\n')

print('花式索引',end='\n**************\n')
print('花式索引',a[[0,2]])
print('花式索引',a[[-1,-2]])
print('花式索引:取出(0,2),(2,1),(1,2)----',a[[0,2,1],[2,1,2]])
 
[[4 5 6]
 [7 8 9]
 [1 2 3]]
布尔索引先返回一个true、false类型数据 [[False False  True]
 [ True  True  True]
 [False False False]]
在根据结果返回元素值为True的元素 [6 7 8 9]
**************
花式索引
**************
花式索引 [[4 5 6]
 [1 2 3]]
花式索引 [[1 2 3]
 [7 8 9]]
花式索引:取出(0,2),(2,1),(1,2)---- [6 2 9]

 

posted @ 2021-09-23 11:30  故笺笺  阅读(146)  评论(0编辑  收藏  举报