当前位置: 首页 > news >正文

numpy___数组/图像形状改变(transpose和reshape详解)

一、numpy如何表示行向量或者列向量

1、在 NumPy 中,一维数组本身没有行或列的方向概念,示例如下:

>>> a=np.array([1,2,3,4])
>>> print(a.shape)
(4,)
>>> print(a)
[1 2 3 4]
>>> b=a.T
>>> print(b.shape)
(4,)
>>> print(b)
[1 2 3 4]
>>>
>>>
>>>

2、形状(shape)

a=[[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]]
npa=np.array(a)
print(npa)
print(npa.shape)

输出结果如下

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

npa的形状是(2,3,4),代表两层,三行、四列,从左向右纬度依次下降;
由4个单元素扩展组成一纬数组(行),
由上述的行,扩展三行组成二纬数组(平面/矩阵)
由上述平面,空间扩展两层组成三维数组(空间)

npb=np.array(range(24)).reshape((2,3,4))

npb与上述npa一样,形状是(2,3,4)

3、图像的形状

import numpy as np
from PIL import Imagenew_image_a=Image.new("RGB",(5,6),color="white")
npimga=np.array(new_image_a)
print(npimga.shape)
print(npimga)

(5,6) 代表图片的宽和高(长和宽),宽5个像素,高6个像素,实际上是6行5列(与ndarray相反)
PIL/几乎所有图像处理库都是 size=(宽度,高度)
numpy 数组形状 shape=(行数,列数)=(高度,宽度)与图像相反
6曾层、5行、3列
输出结果如下

(6, 5, 3)
[[[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255][255 255 255][255 255 255]]]

二、reshape详解

1、语法

numpy.reshape(a, newshape, order='C')
# 或使用数组方法
a.reshape(shape, order='C')

shape是一个元组类型,表示重塑形后的形状,从左到右维度依此下降。

m=(1,)
n=(2,3,4)
print(m+n)
print(n+m)
# 输出结果如下
(1, 2, 3, 4)
(2, 3, 4, 1)image.reshape((1,) + image.shape)  # 相当于对原形状向高纬度扩充一维,维度大小为1
image.reshape(image.shape+(1,))  # 相当于对原形状向低纬度扩充一维,维度大小为1na.reshape(-1) # 将多维转变成一维(一行)

三、transpose

1、语法

numpy.transpose(a, axes=None)
# 或使用数组的成员函数
a.transpose(axes=None)

axes 整数元组,代表转换后的形状

2、实例详解

t=[[1,2,3],[4,5,6]]
t=np.array(t)
t1=t.transpose((0,1))
tuple1=(1,0)
t2=t.transpose(tuple1)
t3=t.T
print(t1)
# [[1 2 3]
#  [4 5 6]]
print(t2)
# [[1 4]
#  [2 5]
#  [3 6]]print(t3)
# [[1 4]
#  [2 5]
#  [3 6]]

t.transpose(0,1,2,3,4,5) 保持数组形状不变
aix 0 代表沿着行的方向,1代表沿着列的方向,2代表沿着层的方向,3代表沿着块的行方向 对于哪几个纬度需要做转置,需要将对象索引的值互换即可

a[][][] 纬度索引由左到右,依次降低 a[0][1][3] 代表第一层,第二行,第四列的值

#0,1,2,3,4,5
#4,3,2,0,1,5

T代表转换后的数组,a代表转换前的数组;T[i][i][i][i][i][i]=a[x5][x4][x3][x2][x1][x0] [i]=x(tuple1[i]) i 代表位置

http://www.dtcms.com/a/578282.html

相关文章:

  • 【TestNG自动化测试框架详解】
  • 怎么查询备案号商城网站建设优化推广
  • [特殊字符] Vue3 项目最佳实践:组件命名、目录结构与类型规范指南
  • 五子棋游戏人机对战模式技术分析
  • 沈阳网站开发外包免费咨询律师24小时
  • 公司网站设计与制作揭阳网站建设antnw
  • Nature Genetics | 本周最新文献速递
  • 机器学习中拟合、欠拟合、过拟合是什么
  • 工程BOQ交付:清单编制关键指南
  • 上海闵行做网站优化软件有哪些
  • 网站免费推广怎么做国外网站界面
  • 每日两题day35
  • 基于 C++ 的高性能批量媒体文件压缩程序
  • Rocky9操作系统基于MySQL安装Zabbix7详解
  • 苏州知名网站制作公司wordpress博客中文插件
  • Redis学习(十五)Mac 安装 Redis
  • 怎样免费做书画网站谷歌关键词搜索
  • 网站二级域名怎么设置网站点击软件排名
  • KTH7814 ——16bit 高精度低延时霍尔角度编码器
  • 新电途充电桩爬虫-设备注册过风控
  • 国外简约网站西安最新公告
  • 八股速记(自用)
  • 网站可以跟博客做互链吗做服装辅料一般什么网站找客户
  • 体育馆客流系统让人流量数据可视化
  • 政协网站建设申请函wordpress表格折叠插件
  • 软件常用运行库:一篇解决缺少运行库问题
  • LeetCode 417 - 太平洋大西洋水流问题
  • kamailio+rtpengine对sdp的处理
  • 深圳市制作网站上海跨境电商网站制作
  • 今日行情明日机会——20251106