numpy学习

import numpy as np
## 创建一个一维数组
np.array([1,2,3])
array([1, 2, 3])
np.array([1,2,3])
array([1, 2, 3])
np.array([[1,2,3]])
array([[1, 2, 3]])
np.array([[1,2,3]]).T
array([[1],[2],[3]])
np.ones(4)
array([1., 1., 1., 1.])
np.zeros(4)
array([0., 0., 0., 0.])
np.random.random(3)
array([0.76998129, 0.65607576, 0.23038928])

常见错误

1.保留中括号

a = np.array([[1,2,3]])
a.dtype
dtype('int32')
a = np.array([[1.,2,3]])
a.dtype
dtype('float64')
a = np.array([[1,2,'3']])
a.dtype
dtype('<U11')

常用的api

## 创建一个数组1-10
np.arange(1,11)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
np.arange(-2,2,0.5)# 0.5是步长
array([-2. , -1.5, -1. , -0.5,  0. ,  0.5,  1. ,  1.5])
## 把数据切割几段
np.linspace(0,2,5)
array([0. , 0.5, 1. , 1.5, 2. ])
np.linspace(0,100,10)
array([  0.        ,  11.11111111,  22.22222222,  33.33333333,44.44444444,  55.55555556,  66.66666667,  77.77777778,88.88888889, 100.        ])
## 创建高维度数组
np.ones([2,3])
array([[1., 1., 1.],[1., 1., 1.]])
np.zeros([3,3])
array([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])

创建对角矩阵

a =np.eye(3)
b = np.array([1,2,3])
np.dot(a,b)
array([1., 2., 3.])
c = np.array([4,5,6])
np.diag(c)
array([[4, 0, 0],[0, 5, 0],[0, 0, 6]])
numpy数组的属性
c = np.array([1,2,3,4])
c.ndim
1
  • 数组的形状
 a= np.array([[2,3,4],[1,3,7]])
a.shape
(2, 3)
a.size #数量
6
a.dtype
dtype('int32')

数组的运算

data = np.array([1,2])
ones = np.ones(2)
data
array([1, 2])
ones
array([1., 1.])
data+ones
array([2., 3.])
data - ones
array([0., 1.])
data * ones
array([1., 2.])
data/ones
array([1., 2.])
data * 3
array([3, 6])
data ** 2
array([1, 4], dtype=int32)
np.sin(data)
array([0.84147098, 0.90929743])
np.exp(data)
array([2.71828183, 7.3890561 ])
np.sqrt(data)
array([1.        , 1.41421356])

布尔过滤

a = np.array([168,159,165,178,190])
a >=175
array([False, False, False,  True,  True])
a = [10,20,30,40]
a * 2
[10, 20, 30, 40, 10, 20, 30, 40]

索引入门

a = np.array([1,2,3])
a[1]
2
#索引范围
a[0:2]
array([1, 2])
a[1:30]
array([2, 3])
a[1:]
array([2, 3])
a[:5]
array([1, 2, 3])
a[:]
array([1, 2, 3])
a[-1]
3
a[-3:-1]
array([1, 2])

numpy数组的元素操作

data = np.array([1,2,3,4,5,6,7,8,9,8,7,6,5,4])
data.max()
9
data.min()
1
data.sum()
75
data.mean() #求平均值
5.357142857142857

二位数组切片

data = np.array([[1,2],[3,4],[5,6]
])
data
array([[1, 2],[3, 4],[5, 6]])
data[0][1]
2
data[0,1]
2
data[1:3]
array([[3, 4],[5, 6]])
data[0:2,0:1]
array([[1],[3]])

numpy 数据形状的改变

data= np.array([1,2,3,4,5,6])
data.shape
(6,)
data.reshape(2,3)
array([[1, 2, 3],[4, 5, 6]])
data.reshape(3,2)
## 注意行乘以列等于数据的总量
array([[1, 2],[3, 4],[5, 6]])
data.reshape(3,-1)
array([[1, 2],[3, 4],[5, 6]])

数据降维

c = np.array([[1,2,3],[2,3,4]
])
c.ravel()
array([1, 2, 3, 2, 3, 4])
a = np.array([
[3000,3500],
[4500,5000],
[10000,11000]]
)
np.sum(a)
37000
np.sum(a,axis=0)
array([17500, 19500])
np.sum(a,axis=1)
array([ 6500,  9500, 21000])
np.max(a)
11000
np.min(a)
3000
np.mean(a)
6166.666666666667
np.median(a)
4750.0

方差

np.var(a)
9888888.888888888

标准差

np.std(a)
3144.660377352201

随机数

np.random.rand(2,3)
array([[0.14406139, 0.58255917, 0.56687269],[0.45931544, 0.27684285, 0.53764072]])
np.random.randint(2,6,5)
array([2, 3, 2, 4, 5])
np.random.randn(10)
array([ 0.13193888,  0.09997268, -0.071677  , -0.08255967, -0.4487725 ,-1.75318345, -0.46725208,  0.34519292, -0.30273565, -0.58354462])

创建正太分布规律的数据

np.random.normal(175,15,size=(4,4))
array([[190.6869503 , 162.3662239 , 155.35991852, 185.87871385],[179.38113865, 171.48428447, 179.59261062, 169.09543353],[166.4724072 , 185.78899473, 168.35652325, 163.75069691],[164.24513277, 186.98536138, 164.74146814, 176.38007905]])
np.random.randn(4,4)
array([[-3.08839751e-01,  7.66951959e-01, -4.02554299e-01,6.24276206e-01],[-6.56442394e-01, -5.90405577e-01, -2.12262531e+00,-2.38134835e-01],[-2.17110459e-01, -6.00174700e-01,  1.06536890e-01,1.70518271e+00],[ 2.33097080e-01, -4.03758442e-01,  2.64799870e-01,6.67566195e-04]])
np.average(np.random.randn(400,400))
-0.005990795466101744
np.std(np.random.randn(400,400))
1.0005126387054453

numpy数据打散

a = np.arange(10)
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.random.permutation(a)
array([6, 1, 7, 5, 9, 4, 2, 3, 8, 0])
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

直接修改原始数组

np.random.shuffle(a)
a
array([2, 0, 9, 1, 7, 6, 4, 3, 8, 5])

numpy指定随机数种子

np.random.seed(3)
np.random.randint(24)
10

numpy逻辑操作

a = np.array([True,False,True,True,False])
np.all(a)
False
np.any(a)
True
a = np.array([50,55,65,57,58,66,100])
a >19
array([ True,  True,  True,  True,  True,  True,  True])

numpy数据排序

b = np.random.randn(10)
b
array([ 0.87226552, -0.01554175,  1.16668206, -2.15861048,  0.75620445,-1.69049879, -0.34879409, -1.72951471,  0.69631161,  0.56496171])
b.sort()
b
array([-2.15861048, -1.72951471, -1.69049879, -0.34879409, -0.01554175,0.56496171,  0.69631161,  0.75620445,  0.87226552,  1.16668206])

不修改元素族排序

a = np.random.randn(10)
a
array([ 0.47986141, -0.29594453, -0.42030926, -0.85961379, -0.40791451,1.24757841, -1.82938368, -1.59651767,  0.69031204,  0.92812246])
a.argsort()
array([6, 7, 3, 2, 4, 1, 0, 8, 9, 5], dtype=int64)
a
array([ 0.47986141, -0.29594453, -0.42030926, -0.85961379, -0.40791451,1.24757841, -1.82938368, -1.59651767,  0.69031204,  0.92812246])
a[a.argsort()]
array([-1.82938368, -1.59651767, -0.85961379, -0.42030926, -0.40791451,-0.29594453,  0.47986141,  0.69031204,  0.92812246,  1.24757841])

二维数组

b = np.random.randn(3,3)
b
array([[ 1.58653631,  0.40130586, -1.26968864],[ 0.46920629,  1.30385884,  1.23128365],[ 0.22948181,  0.27360762, -0.666784  ]])
b.sort(axis=1)
b
array([[-1.26968864,  0.40130586,  1.58653631],[ 0.46920629,  1.23128365,  1.30385884],[-0.666784  ,  0.22948181,  0.27360762]])
b.sort(axis=0)
b
array([[-1.26968864,  0.22948181,  0.27360762],[-0.666784  ,  0.40130586,  1.30385884],[ 0.46920629,  1.23128365,  1.58653631]])
b.argsort(axis=1)
array([[1, 0],[1, 0],[1, 0],...,[1, 0],[0, 1],[1, 0]], dtype=int64)
np.set_printoptions(suppress=True)
totalpoint = 1000
b = np.random.rand(totalpoint,2)
b
array([[0.03393228, 0.16615602],[0.07044839, 0.25010443],[0.37316487, 0.33790676],...,[0.2200427 , 0.60226645],[0.04297848, 0.38231248],[0.45174169, 0.16641803]])
c = np.sqrt(np.sum(b**2,axis=1))
c
array([0.73849201, 0.78324931, 0.2300633 , ..., 0.77652285, 0.78353274,0.62629663])
c < 1
array([ True,  True,  True, ..., False,  True,  True])
np.sum(c<=1)
785401387

行向量和列向量

a = np.array([1,2,3])
a
array([1, 2, 3])
a.transpose()
array([1, 2, 3])

ID数组(一维数组)

b = np.arange(10)
b
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b[::2]
array([0, 2, 4, 6, 8])

数组倒序排列

b
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

b[::-1]

2D(二位数组)

a = np.array([[1,2],[3,4],[5,6]
])
a
array([[1, 2],[3, 4],[5, 6]])
a[1,1]
4
data = np.arange(25).reshape(5,5)
data
array([[ 0,  1,  2,  3,  4],[ 5,  6,  7,  8,  9],[10, 11, 12, 13, 14],[15, 16, 17, 18, 19],[20, 21, 22, 23, 24]])
data[1,2:4]
array([7, 8])
data[3:,3:]
array([[18, 19],[23, 24]])
data[::2,2::2]
array([[ 2,  4],[12, 14],[22, 24]])
data[:,1:2]
array([[ 1],[ 6],[11],[16],[21]])
data[[0,2,4],[0,2,4]]
array([ 0, 12, 24])
data[[1,3,4],3:]
array([[ 8,  9],[18, 19],[23, 24]])

数组拆分和合并

data = np.arange(9).reshape(3,3)
data
array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])
np.vsplit(data,3)
[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
np.hsplit(data,3)
[array([[0],[3],[6]]),array([[1],[4],[7]]),array([[2],[5],[8]])]

数组的合并

a = np.array([[1,2],[3,4]
])
b = np.array([[7,8],[9,10]
])
np.vstack((a,b))
array([[ 1,  2],[ 3,  4],[ 7,  8],[ 9, 10]])
np.hstack((a,b))
array([[ 1,  2,  7,  8],[ 3,  4,  9, 10]])

numpy 高级操作,索引数组

b = np.array([1,3,5,2,4,6])
b[np.argsort(b)]
array([1, 2, 3, 4, 5, 6])
## mnumpy广播机制
a = np.arange(3)
a + 1
array([1, 2, 3])

其他常用的api

b = np.array([1,2,3,4,5,6,7,8,9])
np.argmax(b)
8
np.argmin(b)
0
np.nonzero(b)
(array([0, 1, 2, 3, 4, 5, 6, 7, 8], dtype=int64),)
np.count_nonzero(b)
9

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

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

相关文章

高德优评项目,一单29.9,拷贝+评价,日入500

项目概述&#xff1a; 下载 地 址 &#xff1a; laoa1.cn/1836.html 本项目的核心非常简单&#xff0c;即在高德地图上撰写评论。每条评论完成后&#xff0c;参与者将获得8元的奖励。 此外&#xff0c;高德地图还会提供视频会员作为奖励。我们可以将这些视频会员进行变现…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之③:数据分析之二(大小模型协同)

一、概述 随着新一代信息技术在产业数字化中的应用&#xff0c;产生了大量多源多模态信息以及响应的信息处理模式&#xff0c;数据孤岛、模型林立的问题也随之产生&#xff0c;使得业务系统臃肿、信息处理和决策效率低下&#xff0c;面对复杂任务及应用场景问题求解效率低。针…

做外贸如何主动开发外贸客户

在外贸业务中&#xff0c;主动开发客户是至关重要的一步&#xff0c;它能够帮助你扩大市场覆盖范围&#xff0c;建立稳定的客户基础。以下是一些有效的策略和方法&#xff0c;可以帮助你更有效地主动开发外贸客户&#xff1a; 明确目标市场&#xff1a;首先&#xff0c;你需要确…

【快速入门】数据库的增删改查与结构讲解

文章的操作都是基于小皮php study的MySQL5.7.26进行演示 what 数据库是能长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合。数据库中的数据按照一定的数据模型存储&#xff0c;具有较小的冗余性&#xff0c;较高的独立性和易扩展性&#xff0c;并为…

【docker】Docker开启远程访问

将构建的镜像自动上传到服务器。 需要开放 Docker 的端口&#xff0c;让我们在本地能连接上服务器的 Docker&#xff0c;这样&#xff0c;才能上传构建的镜像给 Docker。 开启远程访问 首先在服务器打开 Docker 的服务文件 vim /usr/lib/systemd/system/docker.service修改…

LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)

0x01 产品简介 LiveGBS是安徽青柿信息科技有限公司研发的一款国标(GB28181)流媒体服务软件,可提供提供用户管理及Web可视化页面管理,开源的前端页面源码;提供设备状态管理,可实时查看设备是否掉线等信息等。 0x02 漏洞概述 LiveGBS user/save 接口处存在逻辑缺陷漏洞,未…

浅论汽车研发项目数字化管理之道

随着汽车行业竞争不断加剧&#xff0c;汽车厂商能否快速、高质地推出贴合市场需求的新车型已经成为车企竞争的重要手段&#xff0c;而汽车研发具备流程复杂、专业领域多、协作难度大、质量要求高等特点&#xff0c;企业如果缺少科学健全的项目管理体系&#xff0c;将会在汽车研…

java-springmvc 01 补充 javaweb 三大组件Servlet,Filter、Listener(源码都是tomcat8.5项目中的)

01.JavaWeb三大组件指的是&#xff1a;Servlet、Filter、Listener,三者提供不同的功能 这三个在springmvc 运用很多 Servlet 01.Servlet接口&#xff1a; public interface Servlet {/*** 初始化方法* 实例化servlet之后&#xff0c;该方法仅调用一次 * init方法必须执行完…

区块链 | 由外部实体导致的 NFT 安全问题

&#x1f98a;原文&#xff1a; Understanding Security Issues in the NFT Ecosystem &#x1f98a;警告&#xff1a; 本文只记录了原文的第 6 节。 1 问题描述 NFT 所指向的数字资产&#xff08;图片、视频等&#xff09;必须是可以访问的&#xff0c;这样 NFT 才具有意义…

flake8,一个超强的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - flake8。 Github地址&#xff1a;https://github.com/PyCQA/flake8 Flake8是一个流行的Python库&#xff0c;用于检查代码质量和风格一致性&#xff0c;它集成了PyFlakes、…

powershell 注册全局热键——提升效率小工具

powershell 注册全局热键 01 前言 在处理一些重复工作问题的时候&#xff0c;想搞一个小工具&#xff0c;配合全局快捷键来提高效率。因为是Windows系统&#xff0c;想到C#&#xff0c;但是又不想用VS开发&#xff0c;因为那样不够灵活&#xff0c;没办法随时修改随时用&…

Windows系统下安装Mosquitto的步骤(2)

接前一篇文章&#xff1a;Windows系统下安装Mosquitto的步骤&#xff08;1&#xff09; 本文内容参考&#xff1a; Windows10上安装Mosquitto的步骤(win10、win11 安装mqtt) - IPS99技术分享 MQTT&#xff1a;windows环境下配置MQTT服务器&#xff08;mosquitto&#xff09;_…

2024.阳光能源追光计划暨大陆考察团交流分享会

近日大陆考察团抵达香港&#xff0c;受到了本司热情接待和安排。公司于4月27日下午举办了阳光能源追光计划主题交流会。 会上公司营销部总监张超&#xff0c;分享了阳光能源近几年的能源发展之路及公司新推出的追光计划&#xff0c;得到了大陆考察交流团团长杨国均先生的高度赞…

Vue.js课后练习(登录注册和大小比较)

第一题 请编写登录页面和注册页面&#xff0c;通过动态组件实现动态切换页面中显示的组件&#xff0c;效果如图1和图2所示。 图1 登录页面 图2 注册页面 代码&#xff1a; my.vue代码: <template>登录 </template><script setup> </script><st…

【Go 语言入门专栏】Go 语言的起源与发展

前言 Go 语言是当下最为流行的编程语言之一&#xff0c;大约在 2020、2021 年左右开始于国内盛行&#xff0c;许多大厂很早就将部分 Java 项目迁移到了 Go&#xff0c;足可看出其在性能方面的优越性。 相信各位都知道&#xff0c;在爬虫业务中&#xff0c;并发是一个关键的需…

Notes for the missing semester. Useful and basic knowledge about Linux.

The Shell Contents The first course is to introduce some simple commands. I’ll list some commands that I’m not familiar with: # --silent means dont give log info, # --head means we only want the http head. curl --head --silent bing.com.cn# cut --deli…

【再探】设计模式—抽象工厂及建造者模式

抽象工厂模式和建造者模式都属于创建型模式。两者都能创建对应的对象&#xff0c;而创建者模式更侧重于创建复杂对象&#xff0c;将对象的创建过程封装起来&#xff0c;让客户端不需要知道对象的内部细节。 1 抽象工厂模式 需求&#xff1a; 在使用工厂方法模式时&#xff0…

Java File类

1. File类概述 1.1 什么是File类 File是java.io包下作为文件和目录的类。File类定义了一些与平台无关的方法来操作文件&#xff0c;通过调用File类中的方法可以得到文件和目录的描述信息&#xff0c;包括名称、所在路径、读写性和长度等&#xff0c;还可以对文件和目录进行新建…

从Paint 3D入门glTF

Paint 3D Microsoft Paint 3D是微软的一款图像编辑软件&#xff0c;它是传统的Microsoft Paint程序的升级版。 这个新版本的Paint专注于三维设计和创作&#xff0c;使用户可以使用简单的工具创建和编辑三维模型。 Microsoft Paint 3D具有直观的界面和易于使用的工具&#xff0…

GitLab常用指令!(工作中常用的)

目录 克隆代码创建分支切换分支将代码提交到分支当中Merge合并 克隆代码 复制完地址&#xff0c;打开Git Bash&#xff0c;然后 git clone “复制的地址”创建分支 创建new_test分支 git branch new_test切换分支 切换到new_test分支 git checkout new_test将代码提交到分…