当前位置:网站首页>NumPy 数组索引 切片
NumPy 数组索引 切片
2022-07-06 01:36:00 【佛系的老肖】
NumPy 数组索引
访问数组元素
数组索引与访问数组元素相同。
您可以通过引用数组元素的索引号来访问该元素。
NumPy数组中的索引以0开头,这意味着第一个元素的索引为0,第二个元素的索引为1,依此类推。
例1 从以下数组中获取第一个元素:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[0])
运行结果:
1
例2 从以下数组中获取第二个元素。
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[1])
运行结果:
2
例3 从以下数组中获取第三个和第四个元素并添加它们。
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[2] + arr[3])
运行结果:
7
访问 2-D 数组
要从二维数组中访问元素,我们可以使用逗号分隔的整数来表示元素的维度和索引。
将二维数组想象成包含行和列的表,其中行表示维度,索引表示列。
例:访问第一行第二列上的元素:
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('第一行第二列上的元素为: ', arr[0, 1])
运行结果:
第一行第二列上的元素为: 2
例2: 访问第 2 行第 5 列中的元素:
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('第 2 行第 5 列中的元素为: ', arr[1, 4])
运行结果:
第 2 行第 5 列中的元素为: 10
访问 3-D 数组
要从三维数组中访问元素,我们可以使用逗号分隔的整数来表示元素的维度和索引。
例1 访问第一个数组的第二个数组的第三个元素:
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr[0, 1, 2])
运行结果:
6
示例说明
第一个数字表示第一个维度,其中包含两个数组:
[[1, 2, 3], [4, 5, 6]]
和:
[[7, 8, 9], [10, 11, 12]]
由于我们选择了0
,代表我们选择了数组:
[[1, 2, 3], [4, 5, 6]]
第二个数字表示第二个维度,它还包含两个数组:
[1,2,3]
和:
[4,5,6]
由于我们选择了1
,代表我们选择了第二个数组:
[4,5,6]
第三个数字表示第三个维度,其中包含三个值:
4
5
6
由于我们选择了2
,我们最终得到第三个值:
6
负索引
使用负索引从末尾访问数组。
例 打印第二个 dim 的最后一个元素:
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('第二个 dim 的最后一个元素: ', arr[1, -1])
运行结果:
第二个 dim 的最后一个元素: 10
NumPy 数组切片
切片数组
Python中的切片意味着将元素从一个给定索引带到另一个给定索引。
我们传递切片而不是索引,如下所示:.[start:end]
我们也可以定义步骤,如下所示:。[start:end:step]
如果我们不设置start,则表示从0开始
如果我们不设置 end,则表示数组长度
如果我们不设置 step,则默认为1
例:从以下数组中将元素从索引 1 切片到索引 5:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5])
运行结果:
[2 3 4 5]
注意:结果包括
起始索引,但不包括
结束索引。
例 : 将元素从索引 4 切片到数组的末尾:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[4:])
运行结果:
[5 6 7]
例子:从开始到索引 4(不包括)对元素进行切片:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[:4])
运行结果:
[1 2 3 4]
负切片
使用减号运算符从末尾引用索引:
例 : 从末尾的索引 3 切到从末尾的索引 1:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[-3:-1])
运行结果:
[5 6]
step 步长
使用step
确定切片长度:
例 : 返回从索引 1 到索引 5 的所有其他元素:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5:2])
运行结果:
[2 4]
例子 从整个数组中返回所有奇数元素:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[::2])
运行结果:
[1 3 5 7]
2-D 数组 切片
例 从第二个元素开始,将元素从索引 1 切片到索引 4(未包含):
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[1, 1:4])
运行结果:
[7 8 9]
例 从这两个元素返回索引 2:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 2])
运行结果:
[3 8]
例子:从两个元素,切片索引 1 到索引 4(未包括在内),这将返回一个 2-D 数组:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 1:4])
运行结果:
[[2 3 4]
[7 8 9]]
边栏推荐
- 【已解决】如何生成漂亮的静态文档说明页
- Mathematical modeling learning from scratch (2): Tools
- 现货白银的一般操作方法
- A picture to understand! Why did the school teach you coding but still not
- ThreeDPoseTracker项目解析
- Crawler request module
- Electrical data | IEEE118 (including wind and solar energy)
- 网易智企逆势进场,游戏工业化有了新可能
- Paging of a scratch (page turning processing)
- Kotlin basics 1
猜你喜欢
Leetcode skimming questions_ Verify palindrome string II
Basic operations of database and table ----- set the fields of the table to be automatically added
NLP fourth paradigm: overview of prompt [pre train, prompt, predict] [Liu Pengfei]
Superfluid_ HQ hacked analysis
Force buckle 1020 Number of enclaves
Alibaba canal usage details (pit draining version)_ MySQL and ES data synchronization
[技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览
How to upgrade kubernetes in place
Mathematical modeling learning from scratch (2): Tools
MATLB|实时机会约束决策及其在电力系统中的应用
随机推荐
剑指 Offer 12. 矩阵中的路径
[network attack and defense training exercises]
Docker compose configures MySQL and realizes remote connection
Redis-字符串类型
【全网最全】 |MySQL EXPLAIN 完全解读
[flask] static file and template rendering
How to get the PHP version- How to get the PHP Version?
Cadre du Paddle: aperçu du paddlelnp [bibliothèque de développement pour le traitement du langage naturel des rames volantes]
037 PHP login, registration, message, personal Center Design
[ssrf-01] principle and utilization examples of server-side Request Forgery vulnerability
【Flask】获取请求信息、重定向、错误处理
基於DVWA的文件上傳漏洞測試
XSS learning XSS lab problem solution
Ordinary people end up in Global trade, and a new round of structural opportunities emerge
Three methods of script about login and cookies
安装Redis
Idea sets the default line break for global newly created files
【详细】快速实现对象映射的几种方式
插卡4G工业路由器充电桩智能柜专网视频监控4G转以太网转WiFi有线网速测试 软硬件定制
Basic operations of database and table ----- set the fields of the table to be automatically added