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中利用sqrt()方法进行平方根计算的教程
May 15 Python
Python 函数基础知识汇总
Mar 09 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
python使用Geany编辑器配置方法
Feb 21 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
Python机器学习之KNN近邻算法
May 14 Python
python编程项目中线上问题排查与解决
Nov 01 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
多重?l件?合查?(二)
2006/10/09 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
深入理解python中的闭包和装饰器
2016/06/12 Python
一张图带我们入门Python基础教程
2017/02/05 Python
解决python线程卡死的问题
2019/02/18 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Django URL参数Template反向解析
2020/11/24 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
内容编辑个人求职信
2013/12/10 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
党员公开承诺书
2014/03/25 职场文书
买房协议书
2014/04/11 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
洗手间标语
2014/06/23 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
导游词之临安白水涧
2019/11/05 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS