numpy数组切片介绍及使用

numpy数组切片介绍及使用

一、通过pip安装numpy

1.在cmd输入:pip install numpy
2.测试一下python -c “import numpy”,没有报错就正常了

二、numpy简单介绍

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。
通过冒号分隔切片参数 start:stop:step 来进行切片操作:


冒号 : 的解释:
(1)如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。
(2)如果使用了两个参数,如 [2:],表示从该索引开始以后的所有项都将被提取。
(3)如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。
(4)如果使用了三个参数,如[2:7:2],那么提取两个索引(不包含停止索引)之间的项,且间隔为2 的取值。
(5)如果参数是负数,如[:-1],那么提取值为除了最后一个全部取。
注意:索引是从0开始计算的。

  • 一维数组

如:从数组中获取索引2到索引7的间隔为2的数值

# coding:utf-8
import  numpy as np
a=np.arange(10)       #[0,1,2,3,4,5,6,7,8,9,10]  
b=a[2:7:2]          #从索引 2 开始到索引 7 停止,间隔为 2
print(b)                       #输出结果:[2 4 6]
  • 多维数组
    同样适用上述索引提取方法

import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
# 从索引1处开始切割
print(a[1:])#输出结果:[[3 4 5] [4 5 6]]

切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray。注意:冒号分隔切片不包含停止索引。


import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
#A[行,列],行索引和列索引以逗号分隔开
print (a[...,1])   # 第2列元素   输出结果:[2 4 5]
print (a[1,...])   # 第2行元素  输出结果:[3,4,5]
print (a[...,1:])  # 第2列及剩下的所有元素   输出结果:[[2 3] [4 5] [5 6]]

三、NumPy 高级索引

以下实例获取数组中(0,0),(1,1)和(2,0)位置处的元素。


import numpy as np 
x = np.array([[1,  2],  [3,  4],  [5,  6]]) 
y = x[[0,1,2],  [0,1,0]]  #相当于(0,0)(1,1)(2,0)
print (y)  #输出结果:[1,4,5]

以下实例获取了 4X3 数组中的四个角的元素。 行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]。

import numpy as np
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
rows = np.array([[0, 0], [3, 3]])  #列索引
cols = np.array([[0, 2], [0, 2]])  #行索引
y = x[rows, cols]  #相当于(0,0)(0,2)(3,0)(3,2)
print (y)    #输出结果:[[ 0  2] [ 9 11]]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值