python numpy数组的索引和切片的操作方法


Posted in Python onOctober 20, 2018

NumPy - 简介

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

NumPy 操作

使用NumPy,开发人员可以执行以下操作:

•数组的算数和逻辑运算。

•傅立叶变换和用于图形操作的例程。

•与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

numpy库多维数组的类型和列表的类型非常类似,同样有索引和切片功能:

索引:获取数组中特定位置元素的过程

切片:获取数组元素子集的过程

1.一维数组

# 准备一个数组
arr1=np.array(np.arange(9))
arr1

array([0, 1, 2, 3, 4, 5, 6, 7, 8])

# 索引
arr[-1] #8
arr1[arr1.size-2] #7
arr1[arr1.size-9] #0 
# 切片 :[start:end:step]
arr1[1:4] #左开右闭的区间
arr1[1:5:2] #array([1,3])
arr1[::-1] # 反向取所有,-1变成了步长

2.二维数组

# 准备一个二维数组
arr2=np.array([
 np.arange(1,4),
 np.arange(5,8)
])

arr2

array([[1, 2, 3],
 [5, 6, 7]])

# 索引
arr2[0][2] # 3
arr2[0,2] # 3
# 切片
arr2[0,] # array([1,2,3]) 
arr2[0,::] # 同上
arr2[0,0:3] #array([1,2])

3.多维数组

arr4=np.arange(1,25).reshape(2,3,4)
arr4

array([[[ 1, 2, 3, 4],
 [ 5, 6, 7, 8],
 [ 9, 10, 11, 12]],
 [[13, 14, 15, 16],
 [17, 18, 19, 20],
 [21, 22, 23, 24]]])

arr4[1][2][2] # 23
arr4[1,1,1] #18
arr3[1,1,] # array([17,18,19,20])
arr4[1,1,::] # 同上
arr4[1,1,::-1] # array([20, 19, 18, 17])
arr4[0,1:3] 
#array([[ 5, 6, 7, 8],
  #[ 9, 10, 11, 12]])
arr4[:1,1] #array([ 6, 18])
b[1,:,2] #array([15, 19, 23])
b[1,...] 
#array([[13, 14, 15, 16],
 # [17, 18, 19, 20],
 # [21, 22, 23, 24]])
b[0,::-1,-1] #array([12, 8, 4])
b[:,:,-1][::-1][:,-1] #array([24, 12])

总结

以上所述是小编给大家介绍的python numpy数组的索引和切片的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 文件操作实现代码
Oct 07 Python
Python版微信红包分配算法
May 04 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
python解决pandas处理缺失值为空字符串的问题
Apr 08 Python
Python实现购物车程序
Apr 16 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
python 安装移动复制第三方库操作
Jul 13 Python
详解Python字典小结
Oct 20 #Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 #Python
Django中的ajax请求
Oct 19 #Python
Tesserocr库的正确安装方式
Oct 19 #Python
Python中Proxypool库的安装与配置
Oct 19 #Python
在cmder下安装ipython以及环境的搭建
Oct 19 #Python
破解安装Pycharm的方法
Oct 19 #Python
You might like
PHP 单引号与双引号的区别
2009/11/24 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
简单的Jquery全选功能
2013/11/07 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
win7安装python生成随机数代码分享
2013/12/27 Python
python实现发送邮件功能代码
2017/12/14 Python
python监控进程脚本
2018/04/12 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Django model update的多种用法介绍
2020/03/28 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
ORACLE第二个十问
2013/12/14 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
小鞋子观后感
2015/06/05 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
常用的Python代码调试工具总结
2021/06/23 Python