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.mfbz.cn/a/570362.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

业务复习知识点Oracle查询

业务数据查询-1 单表查询 数据准备 自来水收费系统建表语句.sql 简单条件查询 精确查询 需求 &#xff1a;查询水表编号为 30408 的业主记录 查询语句 &#xff1a; select * from t_owners where watermeter 30408; 查询结果 &#xff1a; 模糊查询 需求 &#xff1a;查询业…

每日汇评:捍卫 2318美元的支撑位对于黄金至关重要

金价仍保持防御性&#xff0c;但周三早盘守住 2300 美元。&#xff1b; 在中东紧张局势缓和之际&#xff0c;美元下跌给金价带来了安慰。 只要 21 日均线守住&#xff0c;金价下跌空间似乎有限&#xff0c;因为 RSI 保持看涨&#xff1b; 周三早盘&#xff0c;金价维持在2300美…

机器学习-随机森林算法预测房租模型

文章目录 机器学习-随机森林算法预测房租模型解决问题数据集探索性数据分析数据预处理构建模型并训练结果分析与评估参数调优结果预测模型保存经验总结参考文章 机器学习-随机森林算法预测房租模型 解决问题 根据待租房源相关信息&#xff0c;通过随机森林机器学习算法构件预…

045、seq2seq

之——序列生成 杂谈 基于RNN实现&#xff0c;通过RNN生成器不断获取输入&#xff0c;更新隐藏状态&#xff0c;将最后生成的隐藏状态传递给解码器&#xff0c;然后自循环迭代直到输出停止。 正文 1.训练 训练时候解码器使用目标句子不断作为输入&#xff0c;就算解码错了输入…

Docker向harbor上传大镜像的413报错

文章目录 一、背景二、问题三、处理1.调整harbor相关大小2.正向代理的nginx参数 一、背景 最近遇到了个需求&#xff0c;某厂商的系统模块以容器模式部署在我们的内网环境中&#xff0c;厂商为我们提供了一个公网仓库&#xff0c;需要我们自己下载相关镜像。因此&#xff0c;获…

华为机考入门python3--(18)牛客18- 识别有效的IP地址和掩码并进行分类统计

分类&#xff1a;字符串 知识点&#xff1a; 字符串是否由数字组成 my_str.isdigit() 字符串填充 不足8位左侧填充0 my_str.zfill(8) 题目来自【牛客】 import sys def classify_ip(ip_mask): ip_class, is_private_ip, mask_class ignore_ip, 0, valid_mask# 解…

值传递和地址传递

文章目录 目录值传递地址传递 目录 值传递 package com.zhang.parameter; //值传递 public class MethodDemo1 {public static void main(String[] args) {int a 10;System.out.println(a);System.out.println("~~~~~~~~~~~~~~~");change(a);//无论你传入的是什么 …

基于AARRR模型的录音笔在电商平台进行推广的建议

基于AARRR模型&#xff0c;即Acquisition&#xff08;获取用户&#xff09;、Activation&#xff08;提高活跃度&#xff09;、Retention&#xff08;提高留存率&#xff09;、Revenue&#xff08;获取收入&#xff09;和Refer&#xff08;自传播&#xff09;&#xff0c;以下是…

深度学习发展中的继承和创新

深度学习是一步一步发展而来的&#xff0c;新的成就也是在原有的基础上&#xff0c;逐步取得突破&#xff0c;有一些东西是一点一点变化&#xff0c;突破发展而来的&#xff0c;也就是每一次小的突破和每一次小的突破累积起来&#xff0c;构成一个明显的进步。我们可以通过观察…

MAC用户福利:一站式电商客服工具下载地址大全揭秘!

列举和比较拼多多商家版,阿里卖家MAC版本&#xff0c;京麦工作台&#xff0c;聊天宝MAC版&#xff0c;千牛MAC版&#xff0c;抖店MAC版各种适用于MAC系统的电商客服工具&#xff0c;提供平台MAC版本的下载地址&#xff0c;帮助用户提高客服效率、改善客户体验&#xff0c;从而提…

滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南

滚动条是用户界面中的图形化组件&#xff0c;用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时&#xff0c;滚动条提供可视化线索&#xff0c;并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分&#xff0c;实现内容的上下或左右滚动。它在保持…

私域运营的基础是什么?

私域运营是指在自有平台上进行的一系列运营活动&#xff0c;旨在建立和维护与用户的深度互动关系&#xff0c;提升用户忠诚度和品牌影响力。相比于传统的广告投放和推广方式&#xff0c;私域运营更加注重与用户的沟通和互动&#xff0c;通过提供有价值的内容和个性化的服务&…

2024年 团体程序设计天梯赛个人总结

前言&#xff1a; 这是一个悲伤的故事~ &#x1f3c6;题目传送门 ⭐L1一阶题⭐L1-097 编程解决一切&#xff08;5分&#xff09;⭐L1-098 再进去几个人&#xff08;5分&#xff09;⭐L1-099 帮助色盲&#xff08;10分&#xff09;⭐L1-100 四项全能&#xff08;10 分&#xff0…

权威解析Spring框架九大核心功能(续篇):专业深度,不容错过

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

kubernetes中的附件组件Metrics-server与hpa资源实现对pod的自动扩容和缩容

一、概述 Metrics-Server组件目的&#xff1a;获取集群中pod、节点等负载信息&#xff1b; hpa资源目的&#xff1a;通过metrics-server获取的pod负载信息&#xff0c;自动伸缩创建pod&#xff1b; 二、安装部署 Metrics-Server组件 安装目的&#xff0c;就是给k8s集群安装top…

Python从0到100(十六):面向对象编程入门

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

基于SSM的教务管理系统

功能模块 登录界面 管理员端 教师端 学生端 部分源码 //登录表单处理RequestMapping(value "/login", method {RequestMethod.POST})public String login(Userlogin userlogin) throws Exception {//Shiro实现登录UsernamePasswordToken token new UsernamePasswo…

F-47创建预付款请求

F-47创建预付款请求 需要删除 可以使用FB08 冲消即可

【SMART目标法】项目管理必会的思维分析工具 06

SMART分析方法&#xff0c;是让管理者的工作变被动为主动的一个很好的手段。实施目标管理不但是有利于员工更加明确高效地工作&#xff0c;更是为未来的绩效考核制定了目标和考核标准&#xff0c;使考核更加科学化、规范化&#xff0c;更能保证考核的公开、公平与公正。 “sma…

Java调用ffmpeg把rtsp视频流保存为MP4文件,并播放

前言:最近项目需要把rtsp的视频流截取保存为MP4文件。经过多方调研,最终找到方案:调用ffmpeg命令行完成转码。ffmpeg命令行确实稳定靠谱!ok,下面就开始分享代码。 1、环境工具准备 ffmpeg的程序和一个稳定的rtsp流 这是我的ffmpeg的版本。 我这里rtsp流用的海康硬盘录里…