机器学习|深度学习|重磅推出---全网最全Numpy简明教程(一)

news2024/11/27 15:36:41

在这里插入图片描述
本教程面向初学者的Numpy简明教程,学好Numpy才能在深度学习、机器学习、AI等领域进军,如果感觉此文不错,欢迎和博主交流探讨

文章目录

  • 1、Numpy介绍
  • 2、创建ndarray数组
    • 2.1、np.array
    • 2.2、np.ones
    • 2.3、np.zeros
    • 2.4、np.full
    • 2.5、np.eye
    • 2.6、np.linspace
    • 2.7、np.arange
    • 2.8、np.random.randint
    • 2.9、np.random.random
    • 2.10、np.random.rand
    • 2.11、np.random.normal
    • 2.12、np.random.randn
  • 3、ndarray属性

1、Numpy介绍

在这里插入图片描述
Numeric Python 数字的Python

NumPy系统是Python的一种开源的数值计算扩展

  1. 一个强大的N维数组对象ndarray
  2. 拥有比较成熟的函数库
  3. 用于整合C/C++和Fortran代码的工具包
  4. 可以实现线性代数、傅里叶变换和随机数生成函数
  5. Numpy和稀疏矩阵运算包Scipy配合使用更加强大

Numpy主要用于数组的计算,主要应用于机器学习和深度学习领域,所有我们就有必要了解AI的本质是什么

在这里插入图片描述

现在的AI模型本质上是在进行数学运算
数学运算中主要是在做矩阵运算
在计算机中,最擅长做计算
矩阵的计算比较快,我们可以通过一定的方法,把生活中的事物,抽象成矩阵

Numpy中提供了一种数据类型:ndarray数组,nd—>n dimension n个维度
当然,在Python中,列表也是可以表示多维数组
但是,Python中列表存在缺陷

  1. 查询速度慢
    在这里插入图片描述

  2. 占用空间大

# 导入numpy库,并查看numpy版本  
# 为什么需要关注版本信息?  因为有些情况下,版本会出现不兼容情况  
import numpy as np  
print(np.__version__)  
  
# __sizeof__是Python提供的魔术方法,可以查看对象的占用内存  
lst1 = [i for i in range(10000)]  
print(lst1.__sizeof__())  
  
nd1 = np.array([i for i in range(10000)])  
print(nd1.__sizeof__())

在这里插入图片描述
单下划线开头:一般用于类内的私有属性或方法
双下划线开头:一般为Python内置的属性,不推荐你自己的代码使用双下划线开头
双下划线开头和单下划线结尾:Python内置的魔术方法或属性


2、创建ndarray数组

在创建ndarray数组之前,需要先导入Numpy这个包

import numpy as np  
print(np.__version__)  # 查看版本信息

创建ndarray数组可以使用:

  1. 列表
  2. routines函数 常规函数

2.1、np.array

在这里插入图片描述

# 导入numpy库,并查看numpy版本  
# 为什么需要关注版本信息?  因为有些情况下,版本会出现不兼容情况  
import numpy as np  
print(np.__version__)  
  
# 参数为一个列表  
nd1 = np.array([1, 2, 3])  
  
print(nd1, type(nd1))  
  
# 将ndarray转换为list  
lst1 = nd1.tolist()  
print(lst1, type(lst1))  
  
# 假设使用np.array()创建ndarray数组,参数中传递不一样的数据类型  
# 会将数据类型转换为统一的数据类型  
nd2 = np.array([1.2, 1, 3])  
print(nd2, nd2.dtype)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2、np.ones

创建一个ndarray数组,里面元素全部为1
在这里插入图片描述
order这个参数直接默认值就可以,一般不用去修改

one表示1,加一个s,表示里面存在很多1

import numpy as np  
print(np.__version__)  
  
# shape指定创建ndarray形状,默认创建出来ndarray的dtype为float  
# dtype指定数据类型  
nd1 = np.ones(shape=(3, 4))
print(nd1, type(nd1))

nd2 = np.ones(shape=(3, 4), dtype=np.int32)
print(nd2, type(nd2))

在这里插入图片描述

2.3、np.zeros

参考上一个routine函数:np.ones
一个是创建一个全是0的数组
一个是创建一个全为1的数组

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.zeros(shape=(4, 2))
print(nd1, type(nd1))

2.4、np.full

用指定元素进行填充
在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.full(shape=(4, 3), fill_value=10)
print(nd1)

2.5、np.eye

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

# 生成一个二维矩阵,对角线上全部为1(需要列和行相等),其余位置为0  
# k控制主对角线,往上走几下  
nd1 = np.eye(4, 4, k=0)
nd2 = np.eye(4, 4, k=1)
nd3 = np.eye(4, 4, k=2)

print(nd1)
print(nd2)
print(nd3)

在这里插入图片描述

方阵:行数和列数相同的矩阵
单位矩阵:在方阵的基础上,主对角线上全部为1,其他位置全是0的方阵
满秩矩阵:如果一个矩阵可以变为单位矩阵,那么我们把这个矩阵叫做满秩矩阵

2.6、np.linspace

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

# 创建一个等差数列  
# def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None,  
#              axis=0):  
# endpoint=True默认包括stop值  
# retstep=False默认不显示间隔  
nd1 = np.linspace(1, 10, num=10)
print(nd1)

nd2 = np.linspace(1, 10, num=10, retstep=True)
print(nd2)

2.7、np.arange

和Python中的range()函数类似
在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.arange(10)
print(nd1)

在这里插入图片描述
在这里插入图片描述

当使用非整数步长(如0.1)时,结果通常不一致。最好使用numpy。这些情况下的Linspace
小数会带来数据的不准确,当需要使用小数作为步长的时候,最好使用“numpy.linspace”

2.8、np.random.randint

在Python中,不存在真正的随机数,随机数是通过当前系统时间,作为时间戳,当作种子,放入算法,算出时间。
当,随机数种子固定,每次产生随机数字一致

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.random.randint(1, 10, size=(4, 2))
print(nd1)

在这里插入图片描述
Numpy中的random.randint和Python中的random.randint几乎一样,都是产生随机整数
但是,Numpy中的random.randint指定的整数为左闭右开
Python中的random.randint为全闭区间

2.9、np.random.random

产生[ 0,1 ) 之间的小数

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.random.random(size=(4, 2))
print(nd1)

2.10、np.random.rand

类似于np.random.random
在这里插入图片描述

import numpy as np

print(np.__version__)

nd1 = np.random.rand(3, 2)
print(nd1)
print(nd1.mean())  # 求均值

2.11、np.random.normal

创建正太分布(高斯分布)

首先,我们需要了解什么是正太分布(高斯分布)?
在这里插入图片描述

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

# 给出的数据越多,最后计算出的均值就越接近于给定均值
nd1 = np.random.normal(1, 3, size=(4, 4))
print(nd1)
print(nd1.mean())  # 求均值

2.12、np.random.randn

生成一个标准正太分布的ndarray数组

首先,我们需要了解什么是标准正太分布?

在这里插入图片描述

import numpy as np
print(np.__version__)  # 查看版本信息

nd1 = np.random.randn(4, 3)
print(nd1)
print(nd1.mean())  # 求均值


3、ndarray属性

4个必须记住的ndarray属性:

  1. ndim 维度 dimension
    维度可以使用ndim查看,也可以打印出ndarray数组,查看几层中括号,有2层,就是二维数组
  2. shape 形状(每一个维度的长度)
  3. size 总长度(每一个维度的长度相乘)
  4. dtype 元素类型
import numpy as np

print(np.__version__)

# def full(shape, fill_value, dtype=None, order='C'):
nd1 = np.full(shape=(4, 3), fill_value=20)
print(nd1)

# dimension维度
print(nd1.ndim)

# shape形状
print(nd1.shape)

# 元素个数  
print(nd1.size)

# 元素数据类型
print(nd1.dtype)

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

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

相关文章

ChatGPT私有数据结合有什么效果?它难吗?

ChatGPT的出现可谓是惊艳了全世界,ChatGPT的问答能力通过了图灵测试,使其回答问题的方式与人类几乎无法区分。大家不甘于只在官方的对话页面问答,想利用 GPT 模型的自然语言能力结合私有数据开拓更多的应用场景。 | ChatGPT私有数据结合特点 …

ARM:使用汇编完成三个灯流水亮灭

1.汇编源代码 .text .global _start _start: 设置GPIOF寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<5)STR R1,[R0]设置GPIOE寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设…

day24-JS进阶(构造函数,new实例化,原型对象,对象原型,原型继承,原型链)

目录 构造函数 深入对象 创建对象三种方式 构造函数 new实例化执行过程(important!) 实例成员&静态成员 实例对象&实例成员 静态成员 内置构造函数 基本包装类型 Object Object.keys(obj)返回所有键组成的字符串数组 Object.values(obj)返回所有值组成的字…

C# 替换字符串最后一个逗号为分号

使用场景&#xff0c;sql语句的insert into table(c1,c2,c3) values (v1,v2,v3),(v1,v2,v3),(v1,v2,v3), 为了提高执行效率&#xff0c;在一个insert into中执行时&#xff0c;在循环中拼接语句&#xff0c;最后一个逗号需要替换为分号才能执行。 public static string Replace…

采集软件在市场营销中的应用价值

随着互联网的发展&#xff0c;市场竞争愈发激烈&#xff0c;如何获取准确、全面的市场信息成为企业成功的关键。数据利器作为一款强大的市场营销助手软件&#xff0c;具备多项功能&#xff0c;帮助您实现精准营销&#xff0c;发现商机。 软件功能&#xff1a; 搜索引擎采集&…

docker:修改容器的共享内存大小

错误提示&#xff1a; RuntimeError: DataLoader worker (pid 83709) is killed by signal: Bus error. It is possible that dataloader’s workers are out of shared memory. Please try to raise your shared memory limit. 解决办法&#xff1a; 1&#xff1a;创建新容器…

docker虚拟网桥和业务网段冲突处理

ifconfig查看docker虚拟网桥ip地址 docker inspect --format{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} $(docker ps -aq)查询所有容器的ip 修改docker-compose networks networks xxx-network: driver: bridge ipam: c…

web应用常见的其他漏洞总结

1.暴力破解用户名和密码 admin:admin, test:test, weblogic:weblogic, root:passwd 2. 扫敏感目录及备份文件 以ation 为扩展名的文件&#xff0c;通过7kb和k8&#xff0c;破壳扫描&#xff0c;扫描出来一个Web.rar文件&#xff0c;可获取MSSQL SSA连接用户名密码,通过测试…

2.6 宽带接入技术

思维导图&#xff1a; 前言&#xff1a; 我的理解&#xff1a; 1. **早期互联网接入技术的局限性**&#xff1a; - 作者首先回顾了早期用户通过电话线和调制解调器连接到互联网服务提供商&#xff08;ISP&#xff09;的方式&#xff0c;指出这种方式的速度上限是56 kbit/…

顺序表的简单介绍

目录 前提须知&#xff1a; 数据结构&#xff1a; 什么是数据结构&#xff1f; 数据结构特点&#xff1a; 为什么需要数据结构&#xff1a; 顺序表&#xff1a; 线性表&#xff1a; 与数组区别&#xff1a; 静态顺序表与动态顺序表&#xff1a; 二者之间的区别&#x…

应用安全系列之四十:登录常见问题以及预防方法

对于所有系统而言,登录是一个必备的而且最重要的功能。随着系统越来越复杂,服务越来越多,为了方便用户使用系统的服务,SSO应运而生,SSO虽然方便了用户使用系统,也增加了风险。因为一旦登录出现问题,就很容易通过登录访问整个系统。可见,对于登录如果没有控制好,攻击者…

HALCON的基础运用案例:- 例1- 3D点云的分割

前言&#xff1a; 在这个例子里面展示了用HALCON的操作函数segment_object_model_3d&#xff0c;来把一个输入的2.5D的3D图像进行分割。这里因为图像是一组圆柱体&#xff0c;有运用了一个物体的判别操作函数&#xff1a;dev_display_fitting_results。然后&#xff0c;自动给…

Python 代码调试

from pdb import set_trace as stx 是一个Python代码中常用的调试技巧之一&#xff0c;它用于在代码中插入断点以进行调试。这行代码的作用是将Python标准库中的 pdb&#xff08;Python Debugger&#xff09;模块中的 set_trace 函数导入&#xff0c;并将其重命名为 stx&#x…

ArcMap:第二届全国大学生GIS技能大赛(广西师范学院)详解-上午题

目录 01 题目 1.1 第一小题 1.2 第二小题 1.3 第三小题 1.4 数据展示 02 思路和实操 2.1 第一问思路 2.2 第一问操作过程 2.2.1 地理配准 2.2.2 镶嵌 2.2.2.1 第一种镶嵌方法 2.2.2.2 第二种镶嵌方法 2.2.3 裁剪 2.2.4 DEM信息提取 2.2.5 分类 2.3 第二问思路 …

DependsOn注解失效问题排查

文章目录 前言一、现象描述1.1.背景描述1.2.第一次修改&#xff0c;使用DependsOn注解1.3.第二次修改&#xff0c;设置方法入参 二、看看源码2.1.Spring实例化的源码2.2.调试2.3.验证 总结 前言 最近几天遇到一个比较有意思的问题&#xff0c;发现Spring的DependsOn注解失效&a…

强化学习框环境 - robogym - 学习 - 4

强化学习环境 - robogym - 学习 - 4 文章目录 强化学习环境 - robogym - 学习 - 4项目地址为什么选择 robogym如何消去目标位置的阴影&#xff1f;如何让物体颜色变得正确&#xff1f; 项目地址 https://github.com/openai/robogym 为什么选择 robogym 自己的项目需要做一些机…

小白自学笔记—网络安全(黑客笔记)

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟入…

29 WEB漏洞-CSRF及SSRF漏洞案例讲解

目录 CSRF漏洞解释&#xff0c;原理等CSRF漏洞检测&#xff0c;案例&#xff0c;防御等防御方案2、设置随机Token3、检验referer来源 SSRF漏洞会比csrf漏洞重要一些SSRF_PHP&#xff0c;JAVA漏洞代码协议运用演示案例:SSRF_漏洞代码结合某漏洞利用测试 如何查找ssrf漏洞 SSRF漏…

测量温度的优选模块:新型设备M-THERMO3 16

| 具有16个自由选择通道的新型温度测量设备M-THERMO3 16 IPETRONIK推出的温度测量设备——M-THERMO3 16作为新一代设备的首个模块&#xff0c;它为模块化测量技术确立了标准。该模块具有16个通道&#xff0c;各通道不仅分辨率高达24位ADC&#xff0c;而且能够自由选择热电偶类…

2023Q3数据安全政策、法规、标准及报告汇总(附下载)

数据安全处罚事件逐年升高&#xff0c;2023年呈爆发式增长。 截至2023年8月31日&#xff0c;南都大数据研究院通过各地行政执法公示平台、媒体报道等公开渠道收集到146起依据《数据安全法》作出行政处罚决定的案例。2021年公示5起&#xff0c;2022年公示11起&#xff0c;2023年…