Numpy 切片和索引
2020-03-23 09:59
169 查看
数组的轴
a= np.arange(24).reshape((2, 3, 4)) print(a) print(a.ndim) #数组的维度,即轴 print(a.shape) #数组的形状 输出: [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] 3 (2, 3, 4)
根据索引取得数组的元素
- 下标是整数
- 下标是列表
- 下标是数组
b = np.logspace(1, 3, 12).reshape(3, 4) print(b) print(b.shape) #下标是整数 print(b[0]) print(b[1][2]) #下标是列表的形式获取元素 print(b[[0, 1]]) 输出: [[ 10. 15.19911083 23.101297 35.11191734] [ 53.36699231 81.11308308 123.28467394 187.38174229] [ 284.80358684 432.87612811 657.93322466 1000. ]] (3, 4) [10. 15.19911083 23.101297 35.11191734] 123.28467394420659 [[ 10. 15.19911083 23.101297 35.11191734] [ 53.36699231 81.11308308 123.28467394 187.38174229]]
与列表一样,对于数组而言, 每个索引对应的值可以通过索引(下标)进行修改。
数组的切片
基本切片是Python中基本切片概念到n维的扩展,通过start,stop和step参数提供给内置函数的slice函数来构造一个Python slice对象,此slice对象被传递给数组来提取数组的一部分。
通过切片操作得到的数组和原数组共享一个内存空间,公用一个视图,当其中一个进行修改后,另一个也随之修改。
import numpy as np a = np.arange(10) print(a)# [0 1 2 3 4 5 6 7 8 9] s = slice(2, 7, 2) print(s)# slice(2, 7, 2) print(a[s])# [2 4 6] b = a[2:7:2] print(b)# [2 4 6] # 对单个元素进行切片 b = a[5] print(b)# 5 # 对始于索引的元素进行切片 print(a[2:])# [2 3 4 5 6 7 8 9] # 对索引之间的元素进行切片 print(a[2:5])# [2 3 4] # 二维数组 # 最开始的数组 import numpy as np a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]]) print('我们的数组是:') print(a) print ('\n') # 这会返回第二列元素的数组: print ('第二列的元素是:') print(a[..., 1]) print('\n') # 现在我们从第二行切片所有元素: print ('第二行的元素是:') print(a[1, ...]) print('\n') # 现在我们从第二列向后切片所有元素: print ('第二列及其剩余元素是:') print(a[..., 1:]) 输出: [0 1 2 3 4 5 6 7 8 9] slice(2, 7, 2) [2 4 6] [2 4 6] 5 [2 3 4 5 6 7 8 9] [2 3 4] 我们的数组是: [[1 2 3] [3 4 5] [4 5 6]] 第二列的元素是: [2 4 5] 第二行的元素是: [3 4 5] 第二列及其剩余元素是: [[2 3] [4 5] [5 6]]
通过切片操作得到的数组和原数组共享一个内存空间,公用一个视图,当其中一个进行修改后,另一个也随之修改。
相关文章推荐
- numpy数组切片索引的详细讲解
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
- Pyhton科学计算工具Numpy(二)之数组索引切片,numpy随机数及文件生成读取
- Python之numpy教程(二):运算、索引、切片
- python学习笔记(1):numpy库索引切片 形状变化
- Numpy的基础索引与切片
- NumPy 基本切片和索引的具体使用方法
- 5、numpy——切片和索引
- numpy多为数组和切片的索引
- Numpy之基本的索引和切片
- 索引,切片和迭代 NumPy
- numpy之索引和切片
- Numpy学习笔记2——索引与切片
- python numpy数值基础 切片和索引
- numpy 切片和索引
- Python数据分析 | (8)NumPy数组的索引和切片
- Numpy学习笔记之ndarray的索引和切片
- python数据分析:numpy数组的索引与切片
- Numpy 笔记(二): 多维数组的切片(slicing)和索引(indexing)
- Numpy 索引切片及reshape方法小结