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

企业网站建设流程介绍搜狗推广登录

企业网站建设流程介绍,搜狗推广登录,番禺软件公司,找工作网站建设这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《…

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《Numpy从入门到精通——数组变形|合并数组

在这里插入图片描述

文章目录

  • 一、修改数组的形状
    • 1.1 reshape函数
    • 1.2 resize函数
    • 1.3 T函数
    • 1.4 ravel函数
    • 1.5 flatten(order="C")函数
    • 1.6 squeeze函数
    • 1.7 transpose函数
  • 二、合并数组
    • 2.1 append函数
    • 2.2 concatenate函数
    • 2.3 stack函数
    • 2.4 zip函数

在深度学习中,常常会涉及到矩阵的变形。在实际任务中,我们常常需要将处理好的数据以模型能接收的形式发送,然后通过模型计算出一个结果返回。不同模型所要接受的数据的格式是不一样的,这就要求我们将数据处理成符合模型要求的格式。最常见的就是矩阵或者是数组的运算,所以这次我们分享numpy怎么样进行数组变形和合并数组。

一、修改数组的形状

首先我们给出numpy中修改向量的一些常用函数:

函数描述
arr.reshape重新对向量arr维度进行改变,不修改向量本身
arr.resize重新对向量arr维度进行改变,修改向量本身
arr.T对向量arr进行转置
arr.ravel对向量arr进行展平,即将多维数组变成1维数组,不会产生原数组的副本
arr.flatten对向量arr进行展平,即将多维数组变成1维数组,返回原数组的副本
arr.squeeze只能对维数为1的数组降维。对多维数组使用时虽然不会报错,但是不会产生任何影响
arr.transpose对高维矩阵进行轴对换

下面我们通过具体的代码看每一个函数的效果:

1.1 reshape函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_19.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 10:48 
"""
import numpy as nparr = np.arange(10)
print(arr)
# 将向量 arr 维度变换为2行5列
print(arr.reshape(2, 5))
# 指定维度时可以只指定行数或列数, 其他用 -1 代替
print(arr.reshape(5, -1))
print(arr.reshape(-1, 5))

输出为:

[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4][5 6 7 8 9]]
[[0 1][2 3][4 5][6 7][8 9]]
[[0 1 2 3 4][5 6 7 8 9]]

值得注意的是,说设置的行数和列数一定要能够被整除,否则会报错!

1.2 resize函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_20.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 10:52 
"""
import numpy as nparr = np.arange(10)
print(arr)
# 将向量 arr 维度变换为2行5列
arr.resize(2, 5)
print(arr)

输出为:

[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4][5 6 7 8 9]]

resize是没有返回值的,直接在原数组上进行操作。

1.3 T函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_21.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 10:58 
"""
import numpy as nparr = np.arange(12).reshape(3, 4)
# 向量 arr 为3行4列
print(arr)
# 将向量 arr 进行转置为4行3列
print(arr.T)

输出为:

[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
[[ 0  4  8][ 1  5  9][ 2  6 10][ 3  7 11]]

转置是有返回值的,所有可以用print直接输出出来。

1.4 ravel函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_22.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:00 
"""
import numpy as nparr = np.arange(6).reshape(2, -1)
print(arr)
# 按照列优先,展平
print("按照列优先,展平")
print(arr.ravel('F'))
# 按照行优先,展平
print("按照行优先,展平")
print(arr.ravel())

输出为:

[[0 1 2][3 4 5]]
按照列优先,展平
[0 3 1 4 2 5]
按照行优先,展平
[0 1 2 3 4 5]

默认情况是按照行优先进行排序,设置“F”可以安装列优先进行展开。

1.5 flatten(order=“C”)函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_23.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:08 
"""
import numpy as np
a =np.floor(10*np.random.random((3,4)))
print(a)
print(a.flatten(order='C'))
print(a)

输出为:

[[4. 5. 5. 7.][3. 7. 3. 0.][0. 4. 6. 0.]]
[4. 5. 5. 7. 3. 7. 3. 0. 0. 4. 6. 0.]
[[4. 5. 5. 7.][3. 7. 3. 0.][0. 4. 6. 0.]]

flatten经常在卷积网络与全连接层之间,一般在网络需要把2维,3维的多维数组转化为一维数组时使用:
在这里插入图片描述

1.6 squeeze函数

import numpy as nparr =np.arange(3).reshape(3, 1)
print(arr.shape)  #(3,1)
print(arr.squeeze().shape)  #(3,)
arr1 =np.arange(6).reshape(3,1,2,1)
print(arr1.shape) #(3, 1, 2, 1)
print(arr1.squeeze().shape) #(3, 2)

输出为:

(3, 1)
(3,)
(3, 1, 2, 1)
(3, 2)

squeeze函数主要用于降维,可以把数组中含1的维度去掉。

1.7 transpose函数

import numpy as nparr2 = np.arange(24).reshape(2,3,4)
print(arr2.shape)  #(2, 3, 4)
print(arr2.transpose(1,2,0).shape)  #(3, 4, 2)

输出:

(2, 3, 4)
(3, 4, 2)

还记得我们之前说opencv读取图片是BGR格式的吗?我们可以通过numpy.transpose函数进行轴对换,变成RGB格式,再用plt就能正常显示了!

二、合并数组

合并数组也是比较常见的操作之一,同样的,我们先看有哪些函数然后对这些函数进行说明:

函数描述
np.append内存占用大
np.concatenate没有内存问题
np.stack沿着新的轴加入一系列数组
np.hstack栈数组垂直顺序(行)
np.vstack栈数组垂直顺序(列)
np.dstack栈数组按顺序深入(沿第3维)
np.vsplit将数组分解成垂直的多个子数组的列表
zip[iterable,…]将对象中对应的元素打包成一个个元组构成的zip对象

说明

  • append、concatnate以及stack函数都有一个 axis 参数,用于控制数组合并是按行还是按列排序。
  • append和concatnate函数中待合并的数组必须有相同的行数或列数(满足一个即可)。
  • stack、hstack、dstack函数中待合并的数组必须具有相同的形状( shape)。

2.1 append函数

合并一维数组

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_26.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:40 
"""
import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.append(a, b)
print(c)
# [1 2 3 4 5 6]

输出:

[1 2 3 4 5 6]

合并多维数组

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_27.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:41 
"""
import numpy as npa = np.arange(4).reshape(2, 2)
b = np.arange(4).reshape(2, 2)
# 按行合并
c = np.append(a, b, axis=0)
print('按行合并后的结果')
print(c)
print('合并后数据维度', c.shape)
# 按列合并
d = np.append(a, b, axis=1)
print('按列合并后的结果')
print(d)
print('合并后数据维度', d.shape)

输出为:

按行合并后的结果
[[0 1][2 3][0 1][2 3]]
合并后数据维度 (4, 2)
按列合并后的结果
[[0 1 0 1][2 3 2 3]]
合并后数据维度 (2, 4)

2.2 concatenate函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_28.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:43 
"""
import numpy as npa = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])c = np.concatenate((a, b), axis=0)
print(c)
d = np.concatenate((a, b.T), axis=1)
print(d)

输出为:

[[1 2][3 4][5 6]]
[[1 2 5][3 4 6]]

2.3 stack函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_29.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:43 
"""
import numpy as npa = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.stack((a, b), axis=0))

输出为:

[[[1 2][3 4]][[5 6][7 8]]]

2.4 zip函数

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_30.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:45 
"""
import numpy as npa = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = c = zip(a, b)
for i, j in c:print(i, end=",")print(j)

输出为:

[1 2],[5 6]
[3 4],[7 8]

zip函数组合两个向量

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_31.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/22 11:49 
"""
import numpy as npa1 = [1, 2, 3]
b1 = [4, 5, 6]
c1 = zip(a1, b1)
for i, j in c1:print(i, end=",")print(j)

输出为:

1,4
2,5
3,6

在这里插入图片描述

http://www.tj-hxxt.cn/news/8292.html

相关文章:

  • jquery个人网站开发杭州seo渠道排名
  • 网站建设公司推荐5788软件定制开发平台
  • 响应式网站视频怎么做360竞价推广技巧
  • 网站详情页艺术字怎么做的中国免费广告网
  • 毕业设计代做淘宝好还是网站好免费注册
  • wordpress换中文泉州seo托管
  • 设计师必须知道的十个网站关键词查询
  • 网站做seo推广网络推广运营是做什么
  • 网站制作价钱多少百度站长工具官网
  • 建网站怎么做windows系统优化软件
  • 如何加快门户网站建设如何做关键词优化
  • 微软网站做u盘启动教程网络营销推广的
  • 用psd做的买书网站品牌宣传活动策划方案
  • 桂林景区网站建设策划方案搜索引擎优化的基础是什么
  • 网站开发常用哪几种语言苏州网站制作开发公司
  • 江西网站icp备案注销app线上推广是什么工作
  • vpswindows在线播放seo是什么东西
  • 惠州建设工程交易网站b站视频推广
  • 泰州专业做网站公司推广代理平台
  • seo技术教程在线咨询seo技术培训中心
  • 北京网站手机站建设公司电话号码年度关键词
  • 东营优化网站二十条优化措施
  • 新人做网站盈利互联网营销师证书骗局
  • 网页设计评价北京seo公司wyhseo
  • asp网站设置济南百度
  • 自己怎么做卖服装的网站潍坊网站收录
  • 营销做网站公司杭州seo百度关键词排名推广
  • 沛县可以做网站的单位广告最多的网站
  • 建站到网站收录到优化网络推广平台有哪些公司
  • 新手学做网站学哪些知识产品推广方案