Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)


Posted in Python onApril 18, 2018

让我们来看一个例子:

import numpy as np
x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
Out[64]:
array([[1, 2, 3],
  [5, 6, 7],
  [7, 8, 9]])

以上的结果我想大家应该没问题把,就是定义了一个np数组,关键在下面

print(x[:,::-1])
Out[65]:
[[3 2 1]
 [7 6 5]
 [9 8 7]]

以上的代码实现了一种功能,就是将数组倒序排列了,每个维度上倒序,这段代码怎么理解呢,这是我在做深度学习风格迁移的时候遇到的一个问题,就是将图片的rgb变为bgr,然后看到别人写的代码,开始我想的是用transpose,transpose的讲解可以参考我的博客,这里不讲,但实际行不通,因为transpose是维度交换,然后我就想为什么可以用双冒号,看了会,我想通了,以下我来讲解:

x[:,::-1],这段代码,其实就是索引,第一个冒号(逗号之前的)很明显就是选择第一个维度的所有,也就是我们此处所有行,后面列上两个冒号,这样看,比如我们列表y=[1,2,3],y[:2]结果就是[1,2],也就是第一个冒号表示从第一个开始,那我们其实此处我们的逗号后面的第一个冒号也是从第一个开始,那第二个冒号呢,其实第二个冒号代表结束,y=[1,2,3],y[::]结果就是[1,2,3],那第三个参数是啥,其实第三个参数就是步长,步长不能为0,为-1代表逆序,如果为1,则代表全选,如果为2,代表隔一个取一个。

看以下代码:

x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
print('------------')
print(x[:,::-1])
print('------------')
print(x[:,::1])
print('------------')
print(x[:,::2])
print('------------')
print(x[:,::3])
print('------------')
print(x[:,::666666])
x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
print('------------')
print(x[:,::-1])
print('------------')
print(x[:,::1])
print('------------')
print(x[:,::2])
print('------------')
print(x[:,::3])
print('------------')
print(x[:,::666666])
[[1 2 3]
 [5 6 7]
 [7 8 9]]
------------
[[3 2 1]
 [7 6 5]
 [9 8 7]]
------------
[[1 2 3]
 [5 6 7]
 [7 8 9]]
------------
[[1 3]
 [5 7]
 [7 9]]
------------
[[1]
 [5]
 [7]]
------------
[[1]
 [5]
 [7]]

从上述代码就可以理解到,后面之所以x[:,::666666],取66666这么大,是为了说,从第一个开始,后面代表步长,66666这么大的步长也就只能取第一个了,其实步长从3开始就只能取到第一个了

以上用法对于列表也是一样的。

以上这篇Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用列表数据结构小结
Aug 06 Python
Python对文件操作知识汇总
May 15 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
python中scikit-learn机器代码实例
Aug 05 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
python使用PIL剪切和拼接图片
Mar 23 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Python求解排列中的逆序数个数实例
May 03 Python
Python 实现简单的客户端认证
Jul 29 Python
python基础之停用词过滤详解
Apr 21 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 #Python
对python numpy数组中冒号的使用方法详解
Apr 17 #Python
JavaScript实现一维数组转化为二维数组
Apr 17 #Python
对python 矩阵转置transpose的实例讲解
Apr 17 #Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 #Python
解读python logging模块的使用方法
Apr 17 #Python
numpy中的高维数组转置实例
Apr 17 #Python
You might like
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
javascript 写类方式之八
2009/07/05 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
计算机专业大学生的自我评价
2013/11/14 职场文书
市场营销专科应届生求职信
2013/11/24 职场文书
学校门卫管理制度
2014/01/30 职场文书
警示教育活动总结
2014/05/05 职场文书
车贷收入证明范本
2014/09/14 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书