IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 运算库之numpy(数组之间的运算) -> 正文阅读

[人工智能]运算库之numpy(数组之间的运算)

1.数组之间的运算:
? ? 1.数组和数的运算
? ? ? ? 数组里面的每一个元素,都会进行该操作。比如 数组 * 数字 结果为数组中的每一个元素都会进行乘以这个数字。这里其实也是利用了ndarray计算的广播效应。
? ? 2.数组和数组的运算
? ? ? ? 1.维度相同的数组:
? ? ? ? ? ? 对应元素之间进行相应的操作。数组A * 数组B 结果为数组中每一个相应的元素都会进行对应乘法的计算。
? ? ? ? 2.维度不同的数组:
? ? ? ? ? ? 采用广播效应。
2.数组运算的时候的广播效应:
? ? 当满足下方两个条件中的一个时,即可实现广播
? ? ? ? 1.对应维度的数字相同时候
? ? ? ? 2.对应维度不同时,其数字只能为1
? ? ? ? 例子如下。

data1:(2, 2, 3)

data2:(1, 3)

data3:(2, 1)

data4:(1, 2, 3)

根据以上两个实现广播的原则,data2、data3、data4都和data1相互计算。

数组之间的运算:

代码:

import numpy as np

# 数据获取
np.random.seed(22)
data = np.random.uniform(-1, 2, size=20).reshape(4, 5)
data1 = np.random.normal(0, 2, size=20).reshape(4, 5)
data3 = np.random.random(size=4).reshape(4, 1)
print('data:\n', data)
print('data1:\n', data1)

# 1.数组和数的运算
print('数组和数的运算:\n', data + 1)

# 2.相同维度的数组运算
print('相同维度的数组运算:\n', data1 + data)

# 3.不相同的数组运算
print('不相同的数组运算:\n', data + data3)

输出:

data:
 [[-0.37461839  0.44504319  0.26161411  1.577546   -0.48651534]
 [ 0.01659188 -0.1884015   1.07312405 -0.33878645  1.43585276]
 [-0.96841938  0.68361109  1.44117856  1.23530089 -0.43266593]
 [-0.9815774   1.31613161  1.8734965   1.10581365 -0.1072652 ]]
data1:
 [[ 1.49550053  2.12935318  3.04025918 -2.97720587  3.71997978]
 [-3.19722605 -1.29214723  0.67465     2.09345745  1.25828668]
 [ 0.72611819  1.11149939 -2.17709906  0.04738954  4.99835328]
 [-4.98006079 -0.46972477 -0.19512692 -1.77305868 -0.27342648]]
数组和数的运算:
 [[0.62538161 1.44504319 1.26161411 2.577546   0.51348466]
 [1.01659188 0.8115985  2.07312405 0.66121355 2.43585276]
 [0.03158062 1.68361109 2.44117856 2.23530089 0.56733407]
 [0.0184226  2.31613161 2.8734965  2.10581365 0.8927348 ]]
相同维度的数组运算:
 [[ 1.12088214  2.57439636  3.30187328 -1.39965988  3.23346444]
 [-3.18063417 -1.48054873  1.74777405  1.754671    2.69413944]
 [-0.24230119  1.79511048 -0.7359205   1.28269043  4.56568735]
 [-5.96163819  0.84640684  1.67836959 -0.66724503 -0.38069167]]
不相同的数组运算:
 [[-0.32940828  0.4902533   0.30682422  1.62275611 -0.44130523]
 [ 0.7014206   0.49642722  1.75795277  0.34604227  2.12068148]
 [-0.11922863  1.53280184  2.29036931  2.08449163  0.41652481]
 [-0.85637022  1.4413388   1.99870369  1.23102084  0.01794198]]

?广播效应:

代码:

import numpy as np


# 数据获取
np.random.seed(22)
data1 = np.random.random(size=12).reshape((2, 2, 3))
data2 = np.random.random(size=3).reshape((1, 3))
data3 = np.random.random(size=2).reshape((2, 1))
data4 = np.random.random(size=6).reshape((1, 2, 3))
data5 = np.random.random()
print('data1:\n', data1)
print('data2:\n', data2)
print('data3:\n', data3)
print('data4:\n', data4)
print('data5:\n', data5)

# shape为(2, 2, 3)和 (1, 3)
print('data1+data2:\n', data1 + data2)

# shape为(2, 2, 3)和 (2, 1)
print('data1+data3:\n', data1 + data3)

# shape为(2, 2, 3)和 (1, 2, 3)
print('data1+data4:\n', data1 + data4)

# shape为(2, 2, 3)和 (1, )
print('data1+data5:\n', data1 + data5)

?输出:

data1:
 [[[0.20846054 0.48168106 0.42053804]
  [0.859182   0.17116155 0.33886396]]

 [[0.27053283 0.69104135 0.22040452]
  [0.81195092 0.01052687 0.5612037 ]]]
data2:
 [[0.81372619 0.7451003  0.18911136]]
data3:
 [[0.00614087]
 [0.77204387]]
data4:
 [[[0.95783217 0.70193788 0.29757827]
  [0.76799274 0.68821832 0.38718348]]]
data5:
 0.6152058250930562
data1+data2:
 [[[1.02218672 1.22678136 0.60964939]
  [1.67290819 0.91626185 0.52797532]]

 [[1.08425902 1.43614165 0.40951587]
  [1.62567711 0.75562717 0.75031505]]]
data1+data3:
 [[[0.2146014  0.48782193 0.4266789 ]
  [1.63122587 0.94320543 1.11090783]]

 [[0.2766737  0.69718222 0.22654538]
  [1.58399479 0.78257075 1.33324757]]]
data1+data4:
 [[[1.16629271 1.18361895 0.7181163 ]
  [1.62717474 0.85937988 0.72604744]]

 [[1.228365   1.39297923 0.51798278]
  [1.57994366 0.6987452  0.94838718]]]
data1+data5:
 [[[0.82366636 1.09688689 1.03574386]
  [1.47438782 0.78636738 0.95406979]]

 [[0.88573866 1.30624718 0.83561034]
  [1.42715675 0.6257327  1.17640952]]]

学习地址:

?黑马程序员Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例_哔哩哔哩_bilibili

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:17:53  更:2021-12-15 18:18:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 1:28:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码