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

yipeiwu_com5年前Python基础

让我们来看一个例子:

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 unittest单元测试框架的使用

一、测试模型 下面这部分来自于某书籍资料,拿过来,按需参考一下: 测试模型 (1)线性测试 1、概念: 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的...

在Python中操作文件之read()方法的使用教程

 read()方法读取文件size个字节大小。如果读取命中获得EOF大小字节之前,那么它只能读取可用的字节。 语法 以下是read()方法的语法: fileObject.r...

Django框架会话技术实例分析【Cookie与Session】

本文实例讲述了Django框架会话技术。分享给大家供大家参考,具体如下: 会话技术 1、Cookie 客户端会话技术(数据存储在客户端) 以key-value的形式进行存储...

python ceiling divide 除法向上取整(或小数向上取整)的实例

向上取整的方法: 方法1: items = 102 boxsize = 10 num_boxes = (items + boxsize - 1) // boxsize 方法2:...

python如何读写csv数据

本文实例为大家分享了python读写csv数据的具体代码,供大家参考,具体内容如下 案例:        通过股票网站,我们...