Python中numpy 数组的切片操作

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]

原文地址:https://www.cnblogs.com/klausage/p/12271973.html

时间: 2024-11-14 03:12:21

Python中numpy 数组的切片操作的相关文章

Numpy 数组的切片操作

实例+解释如下(表格):关键是要明白python中数组的下标体系.一套从左往右,一套从右往左. A=np.array([1,2,3,4,5,6,7,8,9,0]) 1 2 3 4 5 6 7 8 9 0 下标系一Index(Left to Right) 0 1 2 3 4 5 6 7 8 9 下标系二Index(Right to Left) -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 A[a:b:c] a和b   确定:切片操作的范围(from a to b, exclude

Numpy数组对象的操作-索引机制、切片和迭代方法

前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange(10,16) In [2]: a Out[2]: array([10, 11, 12, 13, 14, 15]) #使用正数作为索引 In [3]: a[3] Out[3]: 13 #还可以使用负数作为索引 In [4]: a[-4] Out[4]: 12 #方括号中传入多数索引值,可同时选择多个

Javascript Jquery 中的数组定义与操作

Javascript Jquery 中的数组定义与操作 (2012-02-15 10:28:00) 转载▼ 标签: 杂谈   1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,

python 中对list做减法操作

问题描述:假设我有这样两个list,          一个是list1,list1 = [1, 2, 3, 4, 5]          一个是list2,list2 = [1, 4, 5]           我们如何得到一个新的list,list3,          list3中包括所有不在list2中出现的list1中的元素.          即:list3 = list1 - list2          解决方案:我们可以用set(集合)操作          list3 = l

python 中调用windows系统api操作剪贴版

# -*- coding: utf-8 -*- ''' Created on 2013-11-26 @author: Chengshaoling ''' import win32clipboard as w32 import win32con class OperateClipboard(object): def __init__(self): # print "OperateClipboard" pass def getText(self): w32.OpenClipboard()

python运算学习之Numpy ------ 数组的切片索引与循环遍历、条件和布尔数组、

数组的切片索引: 数组的切片索引和列表非常类似,下面用代码简单说明 1 a = np.random.rand(16).reshape(4, 4) 2 print("数组a:\n", a) 3 print(a[-1][1:4]) 4 Out[1]: 5 数组a: 6 [[0.04175379 0.43013992 0.5398909 0.40638248] 7 [0.3305902 0.11958799 0.48680358 0.30755734] 8 [0.00893887 0.384

Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片介绍: 从最基础的list索引开始讲起,我们先上一段代码和结果: a = [0,1,2,3,4,5,6,7,8,9] a[:5:-1] #step < 0,所以start = 9 a[0:5:-1] #指定了start = 0 a[1::-1] #step < 0,所以stop = 0 输出: [

python中numpy学习

NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank). 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴.那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被

Python列表list 数组array常用操作集锦【转】

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构. 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0