python numpy库简述

# numpy为我们提供了一个特殊的数组对象,我们可以用numpy表示普通的一维数组,二位矩阵,甚至任意维度的数据,并对数组中的数据作高效的运算
# 一般使用numpy处理数据需要将要出库的数据向量化,并行化通常使用二维数组处理表格,矩阵  使用高维数组处理复杂的数据
# 常用作数据统计,线性代数,图像处理,傅里叶变换等
# numpy底层由c语言构成,具有很高的运行速度
# 导入numpy库并起别名np
import numpy as np# 创建一个简单的一维数组,并打印
a = np.array([1, 2, 3, 4, 5])
print(a)# 创建一个全为0的数组
b = np.zeros((3, 2))
print(b)
b1 = np.zeros((3, 3, 3))
print(b1)
b2 = np.zeros((1, 5))
print(b2)# 类似的我们还可以创建全为1的数组
b3 = np.ones((2, 2))
print(b3)# 查询数组的尺寸
print(b.shape)# 创建递增或递减的数组
c1 = np.arange(5, 11)
# 左闭右开
c2 = np.arange(10)
c3 = np.arange(2, 12, 2)
c4 = np.arange(12, 2, -2)
c5 = np.arange(12, 2)
# 默认步长为1,不指定步长的情况下只能实现步长为1的递增数组
print(c1)
print(c2)
print(c3)
print(c4)
print(c5)# 求某个区间中等间隔分布的数据
d1 = np.linspace(0, 5, 10)
# 前两个参数表示要取的范围,第三个参数表示要的数据量
print(d1)# 生成指定范围内随机值的数组
e1 = np.random.rand(2)
# 生成一个有两个元素的一维数组
e2 = np.random.rand(2, 3)
# 生成一个二维数组,该二维数组包含两个一维数组,每个一维数组包含三个元素
e3 = np.random.rand(2, 3, 4)
# 生成一个三维数组,该三维数组包含两个二维数组,每个二维数组包含三个一维数组,每个一维数组包含四个元素
print(e1)
print(e2)
print(e3)# 在numpy中数组默认的数据类型是64位的浮点数,下面是获取相应数组的数据类型
print(e1.dtype)
# 输出结果如下:float64# 在数组创建时,我们可以改变数组的数据类型
f1 = np.zeros((3, 2), dtype=np.int32)
print(f1)
# 以上数组被转换为32位的整型数据
# 常见的可以转化的数据类型有:
# np.int8/16/32/64 整型
# np.uint8/16/32/64 无符号整型
# np.float32/64 浮点型
# bool 布尔型
# str 字符串类型# 对于现有数组进行数据类型的转换
g1 = np.array([1.1, 1.5, 2.3, 5.6])
print(g1)
g2 = g1.astype(int)
print(g2)# numpy中数组在满足相同尺寸的前提下,可以直接进行四则运算
h1 = np.array([1, 2, 3])
h2 = np.array([4, 5, 6])
h3 = h1 - h2
h4 = h1 * h2
h5 = h4 / h1
print(h3)
print(h4)
print(h5)# 在numpy中进行向量的点乘和矩阵乘法
i1 = np.array([1, 2, 3])
i2 = np.array([4, 5, 6])
i3 = np.array([[1, 2, 3], [4, 5, 6]])
i4 = np.array([[4, 5, 6], [7, 8, 9]])
# 向量乘法
i5 = np.dot(i1, i2)
print(i5)
# 矩阵乘法
# i6 = np.matmul(i4,i3)
# print(i3 @ i4)# 对数组中的所有数字依次求平方根
j1 = np.array([[1, 2], [3, 4]])
print(np.sqrt(j1))# 计算三角函数
k1 = np.array([[1, 2], [3, 4]])
print(np.sin(k1))
print(np.sin(k1))# 进行对数和指数的运算
l1 = np.array([[1, 2], [3, 4]])
print(np.log(l1))
print(np.power(l1, 2))# 数组与单个数字作运算时,会将数组中每个元素与该数字进行运算,产生一个新的数组-----这个操作在numpy中被称为广播
m1 = np.array([[1, 2], [3, 4]])
print(6 * m1)# 前面提到两个相同尺寸的数组可以进行运算,但当你输入不同尺寸的数组时进行运算时numpy并不会报错,它们之间也可以进行运算
# 不同尺寸数组进行运算时,系统会以其为模版,将参与运算的数组补乘相同尺寸的数组再进行运算
n1 = np.array([1, 2, 3])
n2 = np.array([[4], [5], [6]])
print(n1 * n2)# 求数组中最小值和最大值及其所在位置的索引
o1 = np.array([[1, 2], [3, 4]])
print(np.max(o1))
print(np.min(o1))
p1 = np.array([[1, 2], [3, 4]])
print(np.argmax(p1))
# 3
print(np.argmin(p1))
# 0
# 求数组中所有元素的总和
print(np.sum(p1))
# 求数组中的平均值
print(np.mean(p1))
# 求数组的中位数
print(np.median(p1))
# 求数组的方差
print(p1.var())
# 求数组的标准差
print(p1.std())# 如果你的数组是多行数组,你可以额外定义一个变量,通过对行和列进行求和的到一个新的数组
q1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(q1.sum(axis=0))
# 当变量为0时是对多行数组同一行的相同位置的元素进行累加,最终得到新的一行作为一个新数组
print(q1.sum(axis=1))
# 当变量为1时是对多行数组同一列的相同位置的元素进行累加,最终得到新的一列作为一个新数组# 获取数组中的元素---索引
print(q1[0, 0])
print(q1[0, 1])
print(q1[0, 2])
print(q1[1, 3])# 通过条件语句或者逻辑运算符对数组进行筛选
r1 = np.arange(10)
print(r1[r1 > 5])
print(r1[(r1 < 6) & (r1 > 2)])
# 该部分使用与运算'&',或运算'|'# 截取数组的某一段构成一个新的数组
s1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(s1[0, 0:2])
# [1,2]# 当我们需要从数组中取出一个一维数组,有以下两个方式
print(s1[0, :])
print(s1[0])# 再从数组中取出一个一维数组时我们还可以引入跨度
print(r1[1:9:2])
# [1 3 5 7]
# 这行代码的意思是在r1数组数组中以跨度为2,索引1到9的位置取出一个新数组# 跨度也可以为负数,即为逆序取数组,开闭关系也会发生变化
print(r1[9:1:-3])
# [9 6 3]
# 对数组进行逆序处理
print(r1[::-1])
# [9 8 7 6 5 4 3 2 1 0]

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

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

相关文章

vue+springboot实验个人信息,修改密码,忘记密码功能实现

前端部分 新增Person&#xff08;个人页面&#xff09;&#xff0c;Password&#xff08;修改密码页面&#xff09;&#xff0c;还需要对Manager&#xff0c;login页面进行修改 router文件夹下的index.js&#xff1a; import Vue from vue import VueRouter from vue-router i…

视频下载为什么需要大带宽服务器?

视频直播已经成为人们日常生活中的常见形式之一。而在视频直播过程中&#xff0c;为什么需要大带宽呢&#xff1f;本文将深入探讨视频直播中为什么需要大带宽的原因。 视频直播的特点 视频直播是通过互联网进行实时视频传输的方式&#xff0c;与传统的视频点播相比&#xff0c;…

在 vue3 中使用高德地图

前言&#xff1a;定位地图位置所需要的经纬度&#xff0c;可以通过 拾取坐标 获取。 一&#xff1a;快速上手 1. 安装依赖 npm install amap/amap-jsapi-loader # or pnpm add amap/amap-jsapi-loader # or yarn add amap/amap-jsapi-loader 2. 创建组件 src/components/Ma…

飞书小技巧:markdown导出

文章目录 下载Feishu2Md飞书应用配置配置feishu2md工具绑定应用导出markdown 下载Feishu2Md Feishu2Md 飞书应用配置 进入飞书开发者后台 https://open.feishu.cn/app。 点击“创建企业自建应用”&#xff0c;并填写应用名称等信息。而后点击创建。 PS: 此处作者创建应用名…

C++ | Leetcode C++题解之第42题接雨水

题目&#xff1a; 题解&#xff1a; class Solution { public:int trap(vector<int>& height) {int n height.size();if (n 0) {return 0;}vector<int> leftMax(n);leftMax[0] height[0];for (int i 1; i < n; i) {leftMax[i] max(leftMax[i - 1], he…

网络安全之数据库基础篇(基础入门)

目录 一&#xff0c;操作数据库 1&#xff0c;查询所有数据库 2&#xff0c;创建数据库 3&#xff0c;查看数据库是否被创建 4&#xff0c;查看数据库的字符集 5&#xff0c;修改数据库的字符集 6&#xff0c;删除数据库 7&#xff0c;使用数据库 8&#xff0c;查看当前…

【Linux系统编程】

Linux系统编程 一.文件编程1.常用API1.1 打开&#xff1a;open1.2 读写&#xff1a;write/read1.3 光标定位: lseek1.4 创建&#xff1a;creat1.4 关闭&#xff1a;close 2.文件的打开及创建3.文件的写入4.文件的读取5.文件描述符5.代码实现cp指令6.编程实现修改文件配置7.写一…

计算机视觉与深度学习 | 基于特征的图像配准技术(全景图像拼接)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 基于特征的图像配准技术(全景图像拼接) 图像加载特征提取与图像配准初…

学习JavaEE的日子 Day40 反射案例

Day40 1.反射案例 之 万能数组扩容 public class Test01 {public static void main(String[] args) {String[] ss {"小希","小空","小丽","小光","小爱"};String[] newSS MyArrays.copyOf(ss, 8);System.out.println(My…

实现Node.js安装与配置。

一 、Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;用于构建高性能、可扩展的网络应用程序。它发布于2009年5月&#xff0c;由Ryan Dahl开发&#xff0c;允许使用JavaScript进行服务器端编程&#xff0c;使开发者能够在前后端都使用同一种编程…

Unity 新版输入系统(Input System)

前言 官方教程 注意 新的输入系统需要 Unity 2019.4 和 .NET 4 运行时。它不适用于 .NET 3.5 的项目。 教程版本&#xff1a;Unity 2021.3.26 1. 安装 1.1 打开 Package Manager 导航栏 -> Window -> Package Manager 1.2 安装 Input System 选择 Unity Registry 在列…

RabbitMQ, DelayQueue, Redis的介绍以及IDEA的实现

RabbitMQ RabbitMQ是一个开源的消息队列中间件&#xff0c;它实现了高效、可靠的消息传递机制。它支持多种消息传递模式&#xff0c;如发布/订阅、点对点、请求/回应等。RabbitMQ以其可靠性、灵活性和易用性受到广泛的关注和应用。 RabbitMQ基于AMQP&#xff08;Advanced Mess…

字符串刷题(day1)题解

文章目录 字符串刷题一、Erase First or Second Letter二、Swap and Reverse三、Largest Subsequence四、XOR Palindromes五、Strong Password六、Row Major七、Game with Reversing八、Tear It Apart 字符串刷题 vjudge题单 一、Erase First or Second Letter [Erase First…

孙中亮:北斗三十周年,看北斗芯片高质量发展历程和方向

1994年1月10日&#xff0c;北斗一号建设正式启动&#xff0c;党中央决策建设独立自主的北斗卫星导航系统。2020年7月31日&#xff0c;北斗三号全球卫星导航系统正式开通&#xff0c;标志着北斗系统进入全球化发展新阶段。随着2024年的到来&#xff0c;北斗系统建设已走过栉风沐…

汇智知了堂走进宜宾学院,共话国产化信创未来!

在春意盎然的四月&#xff0c;汇智知了堂以其深厚的品牌底蕴和卓越的教育品质&#xff0c;再次展现了其在教育领域的领先地位。4月18日&#xff0c;汇智知了堂走进宜宾学院&#xff0c;为广大学子带来了一场关于国产化信创时代的技术变革与专业学习建议的讲座。 汇智知了堂作…

前端 -- if-else嵌套地狱

要解决 if-else 嵌套地狱问题&#xff0c;可以考虑以下几种方法&#xff1a; 1. 使用早返回&#xff08;Early Return&#xff09;&#xff1a; 尽早返回函数&#xff0c;避免深层嵌套。 将条件判断简化为多个独立的 if 语句&#xff0c;每个 if 语句处理一种情况。 2. 使用…

2024深圳杯(东三省)数学建模挑战赛D题:音板的振动模态分析与参数识别思路代码成品论文分析

​ 更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓ https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 问题重述 深圳杯&#xff08;东三省&#xff09;数学建模挑战赛2024D题&#xff1a;音板的振动模态分析与…

YoloV9改进策略:注意力改进、Neck层改进_自研全新的Mamba注意力_即插即用,简单易懂_附结构图_检测、分割、关键点均适用(独家原创,全世界首发)

摘要 无Mamba不狂欢,本文打造基于Mamba的注意力机制。全世界首发基于Mamba的注意力啊!对Mamba感兴趣的朋友一定不要错过啊! 基于Mamba的高效注意力代码和结构图 import torch import torch.nn as nn # 导入自定义的Mamba模块 from mamba_ssm import Mamba class Eff…

vue做导入导出excel文档

系统中经常会遇到要实现批量导入/导出数据的功能&#xff0c;导入就需要先下载一个模板&#xff0c;然后在模板文件中填写内容&#xff0c;最后导入模板&#xff0c;导出就可能是下载一个excel文件。 1、导出 新建一个export.js文件如下&#xff1a; import {MessageBox,Mes…

赋能数据检索:构建用于www.sohu.com的新闻下载器

引言 在信息爆炸的时代&#xff0c;随着新闻数据的数量不断增长&#xff0c;获取和分析这些数据变得尤为关键。本文将介绍如何构建一个高效的新闻下载器&#xff0c;专门用于从搜狐网&#xff08;www.sohu.com&#xff09;检索和下载新闻内容。 背景介绍 搜狐网作为中国领先…