numpy基础运算

numpy基础运算

import numpy as npt1 = np.array([1, 2, 3, 4, 5])
# numpy数组类型为numpy.ndarray
print("type(np.array)=", type(t1))
t2 = np.array(range(6))
print("t1:", t1)
print("t2:", t2)# np.arange([start,] stop [, stop, ], dtype=None)
# np.arange()和range类似的生成数据列表的方式
t3 = np.arange(6)
t4 = np.arange(4, 10, 2)
print("t3:", t3)
print("t4:", t4)# 可以用dtype来查看numpy数组元素的类型
print("type(t4[0])=", t4.dtype)
type(np.array)= <class 'numpy.ndarray'>
t1: [1 2 3 4 5]
t2: [0 1 2 3 4 5]
t3: [0 1 2 3 4 5]
t4: [4 6 8]
type(t4[0])= int64
import random# 指定创建的数组的数据类型
t5 = np.arange(3, dtype=float)
print("type(t5[0])=", t5.dtype)
print("t5:", t5)t6= np.array([1, 0, 1, 0], dtype=bool)
print("type(t6[0])=", t6.dtype)
print("t6:", t6)# 修改数组的数据类型
t5 = t5.astype(int)
print("type(t5[0])=", t5.dtype)
print("t5:", t5)t7 = np.array([random.random() for i in range(5)])
print("t7:", t7)
# 修改浮点型的小数位数
t7 = np.round(t7, 2)
print("t7:", t7)
type(t5[0])= float64
t5: [0. 1. 2.]
type(t6[0])= bool
t6: [ True False  True False]
type(t5[0])= int64
t5: [0 1 2]
t7: [0.55552792 0.38900276 0.32096574 0.35900877 0.28718253]
t7: [0.56 0.39 0.32 0.36 0.29]
# 一维数组的shape是元素个数
a = np.arange(6)
print("a", a.shape)# 多维数组的shape是每个维度的元素个数, 即数组的形状
b = np.array([[1, 2, 3], [4, 5, 6]])
print("b", b.shape)c = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print("c", c.shape)print()
# 修改数组的形状
d = np.arange(12)
print("d:", d)
d = d.reshape((3, 4))
print("d:", d)print()
# 2块3行4列
e = np.arange(24).reshape(2, 3, 4)
print("e:", e, '\n')# 4行6列
e = e.reshape((4, 6))
print("e:", e, '\n')# 一维数组
e = e.reshape(24)
print("e:", e, '\n')# 1行24列
e = e.reshape((1, 24))
print("e:", e, '\n')# 扁平化,转换为一维数组
e = e.flatten()
print("e:", e, '\n')# 24行1列
# e = e.reshape((24, 1))
# print("e:", e, '\n')
a (6,)
b (2, 3)
c (2, 2, 3)d: [ 0  1  2  3  4  5  6  7  8  9 10 11]
d: [[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]e: [[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]] e: [[ 0  1  2  3  4  5][ 6  7  8  9 10 11][12 13 14 15 16 17][18 19 20 21 22 23]] e: [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23] e: [[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]] e: [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23] 
# 数组和数的计算, 由于广播机制, 运算会被广播到数组的所有元素上
a = np.array([random.randint(1 ,10) for i in range(10)])
print(a)a = a + 1
print(a)a = a * 3
print(a)
[ 5  9 10  5  2  9  7  8  1  5]
[ 6 10 11  6  3 10  8  9  2  6]
[18 30 33 18  9 30 24 27  6 18]
# 数组和数组的计算, 对应位置的元素相加减
a = np.arange(1, 25).reshape((4, 6))
b = np.arange(100, 124).reshape((4, 6))
print("a:", a, sep='\n')
print("b:", b, sep='\n')
print("a+b:", a + b, sep='\n')
print("a*b:", a * b, sep='\n')# 如果两个数组的维度不对应, 也可以计算, 但是仅限于有一个维度相同的情况下才可以进行运算
# 其余情况下维度不同的数组不能进行运算
a:
[[ 1  2  3  4  5  6][ 7  8  9 10 11 12][13 14 15 16 17 18][19 20 21 22 23 24]]
b:
[[100 101 102 103 104 105][106 107 108 109 110 111][112 113 114 115 116 117][118 119 120 121 122 123]]
a+b:
[[101 103 105 107 109 111][113 115 117 119 121 123][125 127 129 131 133 135][137 139 141 143 145 147]]
a*b:
[[ 100  202  306  412  520  630][ 742  856  972 1090 1210 1332][1456 1582 1710 1840 1972 2106][2242 2380 2520 2662 2806 2952]]

广播原则
如果两个数组的后缘维度(从末尾开始算起的维度)的轴长度相符或者其中一方的长度为1,则认为是广播兼容的。

维度可以理解为shape所对应的数字个数。

shape为(3,3,3)的数组不能够和(3,2)的数组进行计算

shape为(3,3,2)的数组够和(3,2)的数组进行计算

shape为(3,3,2)的数组够和(3,1)的数组进行计算

轴(axis)在numpy中可以理解为方向, 使用0,1,2…数字表示,对于一个一维数组,只有一个0轴,对于2维数组(shape(2,2)),有0轴和1轴,对于三维数组(shape(2,2, 3)),有0,1,2轴。

np.arange(0,10).reshape((2,5))的reshpe中2表示0轴长度(包含数据的条数)为2,1轴长度为5,2*5一共10个数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT引领的AI面试攻略系列:AI全栈工程师篇

系列文章目录 AI全栈工程师&#xff08;本文&#xff09; 文章目录 系列文章目录一、前言二、面试题1. 基础理论与数据处理2. 机器学习3. 深度学习4. 大模型与迁移学习5. 计算机视觉6. 自然语言处理&#xff08;NLP&#xff09;7. 多模态学习8. AI生成内容&#xff08;AIGC&am…

QPainter::translate: Painter not active

画笔关联画布 就是这里少写了this指针

亚马逊API:快速获取全球商品详情的实用指南!

亚马逊提供了多种API&#xff0c;允许开发者访问其商品、订单、支付和其他与电商相关的数据。其中&#xff0c;与商品详情相关的API主要是Product Advertising API (PAAPI)。这个API可以帮助你获取亚马逊上的商品详情&#xff0c;如价格、描述、图片等。 以下是使用亚马逊Prod…

Python 基础语法:基本数据类型(一)

1 理解代码与写代码 1.1 什么是代码 代码是现实世界事物在计算机世界中的映射。 我们用计算机写代码&#xff0c;是为了利用计算机的高性能来解决现实世界中的问题。要用计算机来解决现实的问题&#xff0c;首先需要在计算机的世界里面把现实世界的一些事物和问题刻画出来…

05_Mongooes

Mongooes Mongoose是通过Node来操作MongoDB的一个模块。是基于Node.js的第三方模块。 一、Node.js安装 1.解压 2.创建文件夹 解压路径下&#xff0c;创建两个文件夹 node_global&#xff1a;全局安装位置 node_cache&#xff1a;缓存 3.配置 配置环境变量 在path路径…

毫秒生成的时间戳如何转化成东八区具体时间

假设现在有一个时间是1709101071419L 后端代码实现 Java代码&#xff08;东八区时间&#xff09; 在Java代码中&#xff0c;我们将时区从UTC调整为东八区&#xff08;UTC8&#xff09;&#xff1a; import java.time.Instant; import java.time.ZoneId; import java.time.Z…

FreeRTOS操作系统学习——FreeRTOS工程介绍

FreeRTOS工程介绍 核心文件 FreeRTOS的最核心文件只有2个&#xff1a; FreeRTOS/Source/tasks.cFreeRTOS/Source/list.c 文件功能如下图&#xff1a; 头文件相关 内存管理文件 文件在 Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang 下&#xff0c;它也是放…

JavaScript的`call`方法:实现函数间的调用!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

堆和二叉树的动态实现(C语言实现)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1…

CFD一般步骤-常用的软件

CFD&#xff08;计算流体动力学&#xff09;仿真的具体步骤一般包括以下几个方面&#xff1a; **确定几何形状并生成计算网格&#xff1a;**首先&#xff0c;需要确定要分析的流体流动的空间影响区域&#xff0c;并对实际的几何区域进行简化&#xff0c;以减少计算复杂性。使用…

前端 WebSocket 的一些使用

前端 WebSocket 的一些使用 文章目录 前端 WebSocket 的一些使用连接的建立接收消息发送消息关闭连接处理 WebSocket 是一种网络通信协议&#xff0c;用于实现双向通信。在前端中&#xff0c;你可以使用 JavaScript 中的 WebSocket 对象来创建 WebSocket 连接&#xff0c;发送…

Go语言的设计哲学

Go语言的设计哲学 设计哲学之于编程语言&#xff0c;就好比一个人的价值观之于这个人的行为。简单显式组合并发面向工程 设计哲学之于编程语言&#xff0c;就好比一个人的价值观之于这个人的行为。 因为如果你不认同一个人的价值观&#xff0c;那你其实很难与之持续交往下去&a…

BUUCTF-Misc-[SUCTF 2019]Game1

题目链接&#xff1a;BUUCTF在线评测 (buuoj.cn) 下载附件一大堆文件&#xff0c;打开index.html时发现一大串base字符 U2FsdGVkX1zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ 写代码和工具解都可以 填进去后错误&#xff0c;发现不是真的flag 查看另外一张照片&#xff0c;…

图像AI换脸软件:AI FaceSwap 中文版

AI FaceSwap 是一款利用人工智能技术进行面部交换的软件。该软件通过先进的人工智能算法&#xff0c;能够将一个人的面部表情、神态和特征准确地映射到另一个人身上&#xff0c;实现面部交换的效果。用户只需要提供两张照片&#xff0c;一张是目标人物的照片&#xff0c;另一张…

数据库进阶——如何提升数据库的安全性,以MySQL和Redis加固为例

目录 引出数据库加固加固思路MySQLRedis Redis冲冲冲——缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 数据库进阶——如何提升数据库的安全性&#xff0c;以MySQL和Redis加固为例 数据库加固 加固思路 账号配置 应按照用户分配账号&…

Nginx使用—基础知识

Nginx简介 Nginx优点 高性能、高并发 支持很高的并发&#xff0c;在处理大量并发的情况下&#xff0c;比其他web服务器要高效 轻量且高扩展 功能模块少(源代码仅保留http与核心模块代码&#xff0c;其余不够核心代码会作为插件来安装) 代码模块化&#xff08;易读&#xff0…

C语言:qsort的使用方法

目录 1. qsort是什么&#xff1f; 2. 为什么要使用qsort 3. qsort的使用 3.1 qsort的返回值和参数 3.2 qsort的compare函数参数 3.3 int类型数组的qsort完整代码 4. qsort完整代码 1. qsort是什么&#xff1f; qsort中的q在英语中是quick&#xff0c;快速的意思了&#…

C语言数据类型讲解详细说明

C语言数据类型 C语言中的数据类型可以分为几大类&#xff1a;基本数据类型、非基本数据类型和复合数据类型。接下来&#xff0c;我们将逐一进行详细和生动的讲解&#xff0c;并通过实例代码来辅助理解。 基本数据类型 基本数据类型是C语言中最基本、最原始的数据类型。它们包…

C++基础2:C++基本数据类型和控制结构

此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏&#xff0c;参考书籍&#xff1a;《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 2.C基本数据类型和控制结构 2.1 C基本数据类型 程序是由算法…

个性化服务的未来:基于API的电商平台数据定制和推荐系统

随着电商行业的快速发展&#xff0c;个性化服务已经成为提升用户体验和增加用户粘性的关键。基于API的电商平台数据定制和推荐系统是实现这一目标的重要技术手段。 未来&#xff0c;个性化服务可能会朝以下几个方向发展&#xff1a; 更精准的用户画像&#xff1a;通过API接口…