Python中numpy 数组的切片操作

摘要:
Python中numpy数组的切片操作介绍Take元素X[n0,n1]Slice X[s0:e0,s1:e1]Slice特例X[:e0,s1:]示例代码输出结果介绍X[n0、n1]是一种通过numpy库引用二维数组或矩阵中的数据集的方法。例如,X[1:3,1:3]表示维度0的(1:3)元素[[10,11,12,13],[20,21,22,23]],然后表示维度1的(1:3的)元素,即[[11,12],[21,22]];切片的特殊情况X[:e0,s1:]特殊情况,即X[:s0,s1:e1]可以从左侧的0省略,X[s0:,s1:e1]可以从右到尾省略。取某个维度X[:,s1:e1]的所有元素。事实上,序列切片规则与Python相同。

Python中numpy 数组的切片操作
简介
取元素 X[n0,n1]
切片 X[s0:e0,s1:e1]
切片特殊情况 X[:e0,s1:]
示例代码
输出结果
简介
X[n0,n1]是通过 numpy 库引用二维数组或矩阵中的某一段数据集的一种写法。
类似的,X[n0,n1,n2]表示取三维数组,取N维数组则有N个参数,N-1个逗号分隔。
以二维数组为例:

import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
1
2
X 是一个二维数组,维度分别为 0 ,1;为了方便理解多维,采取数中括号的方式 ‘[’ 确定维数,例如:从左往右,第 0 层 [] 表示第 0 维;第 1 层 [] 表示第 1 维;…以此类推。

取元素 X[n0,n1]
这是最基本的情况,表示取 第0维 的第 n0 个元素,继续取 第1维 的第 n1个元素。如 X[2,2] 表示第0维第2个元素[20,21,22,23],然后取其第1维的第2个元素即 22;

切片 X[s0:e0,s1:e1]
这是最通用的切片操作,表示取 第0维 的第 s0 到 e0 个元素,继续取 第1维 的第 s1 到 e1 个元素(左闭右开)。如 X[1:3,1:3] 表示第0维第(1:3)个元素[[10,11,12,13],[20,21,22,23]],然后取其第1维的第(1:3)个元素即 [[11,12],[21,22]];

切片特殊情况 X[:e0,s1:]
特殊情况,即左边从0开始可以省略X[:e0,s1:e1],右边到结尾可以省略X[s0:,s1:e1],取某一维全部元素X[:,s1:e1],事实上和Python 的 序列切片规则是一样的。

常见的 X[:,0] 则表示 第0维取全部,第1维取0号元素;

示例代码
import numpy as np

X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])

# X 是一个二维数组,维度为 0 ,1
# 第 0 层 [] 表示第 0 维;第 1 层 [] 表示第 1 维;

# X[n0,n1] 表示第 0 维 取第n0 个元素 ,第 1 维取第 n1 个元素
print(X[1,0])
# X[1:3,1:3] 表示第 0 维 取 (1:3)元素 ,第 1 维取第(1:3) 个元素
print(X[1:3,1:3])

# X[:n0,:n1] 表示第 0 维 取 第0 到 第n0 个元素 ,第 1 维取 第0 到 第n1 个元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 维 取 全部元素 ,第 1 维取 第0 到第n1 个元素
print(X[:,:2])

# X[:,0]) 表示第 0 维 取全部 元素 ,第 1 维取第 0 个元素
print(X[:,0])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
输出结果
10
[[11 12]
[21 22]]
[[ 0 1]
[10 11]]
[[ 0 1]
[10 11]
[20 21]
[30 31]]
[ 0 10 20 30]

免责声明:文章转载自《Python中numpy 数组的切片操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Lucene中对document(记录)的CURD操作~为分布式全文检索设计Hive中的排序语法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

去掉字符串中的某几位

一招吃遍力扣四道题,妈妈再也不用担心我被套路啦~ lucifer发布于2020-06-163.7kPythonPython3 我花了几天时间,从力扣中精选了四道相同思想的题目,来帮助大家解套,如果觉得文章对你有用,记得点赞分享,让我看到你的认可,有动力继续做下去。 这就是接下来要给大家讲的四个题,其中 1081 和 316 题只是换了说法而...

Numpy---4.数组的存储和加载

一、二进制 1.numpy.save() numpy.save(file, arr, allow_pickle=True, fix_imports=True) 功能:将数组以二进制的形式存储到文件中 参数: file:文件名或者文件对象。如果是个文件名,则会自动添加后缀.npy如果没有该后缀的话 arr:被存储的数组 allow_pickle:一个...

C# 基本数据类型

Ø  前言 每个编程语言都有基本的数据类型,例如 C、C++、Java、Python、PHP、JavaScript、以及各种数据库等,而 C# 也不例外。本篇主要讨论 C# 中的一些常用的基础数据类型。   1.   值类型 Ø  值类型隐式继承于 System.ValueType,而 System.ValueType 隐式继承于 System.Objec...

Pandas —— (1)基础数据结构概念和创建

@ 目录 一、Pandas简介 1.1 数据结构 1.2 大小可变与数据复制 二、Series 数据结构 2.1 Series简介 2.2 Series 创建方法 2.2.1 由字典创建 2.2.2 由数组创建(一维数组) 三、Dataframe数据结构 3.1 Dataframe简介 3.2 Dataframe创建方法 3.2....

python(leetcode)-350两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出...

Java数组,去掉重复值、增加、删除数组元素

import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; public class lzwCode { public static void main(String [] args) {...