翻转数组(flip()函数)--numpy

1. 函数功能

沿着指定轴翻转数组元素的顺序,数组形状保持不变,但是数组元素顺序会被重排

2. 函数语法

numpy.flip(m, axis=None)

3. 函数参数与示例

参数含义
m输入数组
axis取值为None、整数、整数构成的元组

3.1 一维数组

import numpy as np
# 1. 一维数组: 翻转数组是将数组的数据倒序排列,但数组形状不变
a = np.arange(10)
print('原始数组a: ', a, sep='\n')
a1 = np.flip(a)
print('翻转数组a得到数组a1: ', a1, sep='\n')

在这里插入图片描述
对于一维数组这个flip函数的作用相当于 a[::-1]

3.2 二维数组

3.2.1 不指定轴axis

import numpy as np

# 1)不指定轴axis
b = np.array([[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 5, 6], [2, 4, 7, 8]])
print('数组b:', b, sep='\n')
b1 = np.flip(b)
print('翻转数组b得到数组b1: ', b1, sep='\n')

在这里插入图片描述

3.2.2 指定轴axis

b = np.array([[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 5, 6], [2, 4, 7, 8]])
print('数组b:', b, sep='\n')
b1 = np.flip(b, axis=1)
print('沿着轴axis=1翻转数组b得到数组b1: ', b1, sep='\n')

在这里插入图片描述

当指定轴axis=1,沿着列翻转,行上包含的元素不变,列上的元素倒序排列,如上图中,最后一列变成第一列,倒数第二列变成第二列,以此类推;相当于 b[:, ::-1]

3.3 三维数组

3.3.1 不指定轴

import numpy as np

c = np.array([[[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 2, 2], [3, 4, 4, 5]],
              [[1, 2, 1, 2], [30, 40, 40, 42], [12, 23, 22, 21], [33, 34, 54, 64]]])
print('c:', c, sep='\n')
c1 = np.flip(c)
print('翻转数组c得到数组c1: ', c1, sep='\n')
print(c[::-1, ::-1, ::-1])


在这里插入图片描述

在这里插入图片描述
将所有轴的数据都进行翻转,相当于c[::-1, ::-1, ::-1]

3.3.2 沿着指定轴翻转

1) axis=0
c2 = np.flip(c, axis=0)
print('翻转数组c得到数组c2: ', c2, sep='\n')

在这里插入图片描述
沿着轴axis=0的方向翻转,上下两块数组位置互换,相当于c[::-1]

2) axis=1
c3 = np.flip(c, axis=1)
print('翻转数组c得到数组c3: ', c3, sep='\n')

在这里插入图片描述
沿着axis=1的方向翻转,相当于c[::, ::-1, ::]

3.3.3 axis取值为元组

c4 = np.flip(c, axis=(0, 2))
print('翻转数组c得到数组c4: ', c4, sep='\n')

在这里插入图片描述
在轴aixs=0和轴axis=2两个轴上同时翻转,相当于c[::-1, ::, ::-1]

4. 返回值

返回一个原数组沿着指定轴翻转后的view,返回的数组与原数组共享同一个内存区域,但是不同的对象

import numpy as np

c = np.array([[[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 2, 2], [3, 4, 4, 5]],
              [[1, 2, 1, 2], [30, 40, 40, 42], [12, 23, 22, 21], [33, 34, 54, 64]]])
# print('c:', c, sep='\n')

d = c.view()

print(id(c))
print(id(d))
print(d.base is c)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值