day01-Numpy的安装

news2025/4/4 23:14:07

numpy的安装

同样,anaconda内置有Numpy包

Numpy是用c语言实现的,运算速度比python快得多

import numpy as np
np.__version__
out: 1.18.5

使用Jupyter编辑器打印numpy包的版本

NumPy

ndarray对象

NumPy定义了一个n维数组对象,简称ndarray对象,它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有相同大小的内存块。与c语言中的数组大致相同。

ndarray对象采用了数组的索引机制,存储方式几乎相同

ndarray参数

numpy.array(object,dtype=None,copy=True,order=None,subok=False,admin=0)

参数说明:在这里插入图片描述

  • object:可以是一个列表、元组,必须给定
  • dtype:float,int,可强制转化
  • 求一个数组的秩array.ndim
#创建实列
np.array([i for i in range(10) if i%2==0])
#得到array[0,2,4,6,8]
np.array([1,2,3,4.5,'5'])
#得到np.array(['1','2','3','4.5','5'])
#会自动往内存最大的类型转换
np.array([
    [1,2,3],
    ('a','b','c')
])
#得到array([['1','2','3'],['a','b','c']])
#是一个二维数组
np.array([
    [1,2,3],
    ('a','b','c','d')
])
#当嵌套序列数量不一样时,会转化为一维数组
#array([list(1,2,3),['a','b','c','d'])
np.array([1,2.5,3.1,4.0,5],dtype='int')
#得到array([1,2,3,4,5])向下取整。round()为四舍五入函数

对于第三个参数的说明:

my_list1 = [1,2,3,4]
my_list2 = mylist1
my_list2[1] = 10
#此时输出my_list1 = [1,10,3,4]
#为引用传值。
id(mylist1)#地址
id(mylist2)#地址
#两则的地址是一模一样的。
a = np.array([1,2,3,4])
b = np.array(a)
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址不相同
#说明是引用不是赋值,修改b,a不会被修改
a = np.array([1,2,3,4])
b = a
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址相同
#说明是引用赋值,修改b,a也会被修改
a = np.array([1,2,3])
print(id(a))

b = np.array(a)
print(id(b))

c = a.copy()
print(id(c))

d = a
print(id(d))

#b、c是值传递,d是地址传递

4.ndmin

a = np.array([1,2,3],ndmin = 2)
a.ndim
#输出2得到a为array([[1,2,3]])

5.subok参数,类型为bool值,默认False。True:代表使用object的内部数据类型,False:使用数组的数据类型

array属性

在这里插入图片描述

更改数组维数reshape

a = np.array(20)
#一维数组
a = np.array(20).reshape(4,5)
#改为4行5列的数组,且4*5==20不然报错
调整维度resize
numpy.resize(a,new shape)
如果新数组大于原始数组,则新数组将填充a的重复副本,
#a为2行2列
a=np.array([[0,1],[2,3]])
#一a为原数组创建2行3列的新数组
b23=np.resize(a,(2,3))
b23
#array([[0,1,2],
#		[3,0,1]])
#将0,1,2,3循环填入数组中即填充的为数组的重复副本
#使用0填充需要
#array.resize(new_shape)
a.resize((3,4),refcheck = False)
array.size
#求数组元素个数,二维元素总个数
a.astype('int')
#创建a后强制更改元素类型

arange对象

numpy.arange(start,stop,step,dtype)

参数说明:在这里插入图片描述

np.arange(10)
#array([0>>9])
np.arange(3.1)
#array([0.,1.,2.,3.])可指定为浮点
#而python原生range(3.1)为错误代码不能指定浮点数
x = np.arange(5,dtype = float)
# x = array([0.,1.,2.,3.,4.])
np.arange(10,20,2)
#array([10>>18])
len(x)
#求数组长度,不能求出二维元素总个数
array.size
#求数组元素个数,二维元素总个数

等差数列:linspace对象

用于生成等差数列

np.linspace(start,num=50,endpoint=True,retstep=False,dtype = None)

特点【】左闭右也闭

参数说明:在这里插入图片描述

a = np.linspace(1,10,10)
a
#array([1.,2.,3.,4.,5.,6.,7.,8.,9.,10.])

A = np.linspace(0,4,9)
#生成【0-4】均分的array浮点数组

B = np.linspace(0,4.1,9)
#生成【0-4.1】均分的array浮点数组

ar1 = np.linspace(2.0,3.0,num = 5 ,retstep = True)
#生成一个元组,第一个元素为array([2.,2.25,2.5,2.75,3.])
#第二个参数为步长,即每个元素之间的差值0.25
#(array([2.,2.25,2.5,2.75,3.]),0.25)

等比数列:logspace对象

np.logspace(start,stop,num= 50,endpoint=True,base = 10.0,dtype = None)

参数说明:

在这里插入图片描述

a = np.logspace(0,9,10,base = 2)
#array([1.,2.,4.,8.,16.,32.,64.,128.,256.,512,])
np.logspace(A,B,C,base = D)
  • A:生成数组的起始值为D的A次方
  • B:生成数组的结束值为D的B次方
  • C:总共生成C个数
  • D:指数型数组的底数为D,默认为10
# 我们先使用前3个参数,将[1,5]均匀分成3个数,得到1,3,5},
#然后利用第4个参数base=2(默认是10)使用指数函数可以得到最终输出结果{2^1,2^3,2^5}
np.logspace(1,5,3,base=2)
np.logspace(1.0,2.0, num=10)

#等价于下面:
np.linspace(1.0,2.0, num=10)
print (a)
10*a

全0数列:zeros()

创建指定大小的数组,数组元素以0填充

numpy.zeros(shape,dtype=float,order = 'C')

参数说明:

在这里插入图片描述

#1.shape可以给一个数,表示一维的多少个0
np.zeros(5)
#默认为浮点数
#shape可以给一个元组表示维数与个数
np.zeros((2,2))
#2行2列的全0数组
#array([[0.,0.],
#	    [0.,0.]])
np.zeros((2,2,3))
#2块2行3列的全0数组,对于下面定义
array([[[0.,0.,0.],
	    [0.,0.,0.]],

		[[0.,0.,0.],
	    [0.,0.,0.]]])

a = array([[1,2,3],[4,5,6]])
np.zeros_like(a)
#创建出与a数组形状相同、类型相同的全0数列
#array([[0,0,0],
#	    [0,0,0]])
  • 全1数列:np.ones()

总结:

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

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

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

相关文章

vue 登录

1.创建项目 Set-ExecutionPolicy RemoteSigned npm install -g yarn yarn add axios yarn add element-pluspackage.json {"name": "tom6","version": "0.1.0","private": true,"scripts": {"serve": &…

乾元通渠道商中标金昌市自然灾害应急能力提升项目

近日,乾元通渠道商中标甘肃省金昌市自然灾害应急能力提升项目,乾元通作为设备厂家,为项目提供通信指挥类装备(多链路聚合设备) QYT-X1 。 随着万亿国债项目的全面铺开, 青岛乾元通数码科技有限公司 作为国家…

Databend 开源周报第 149 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持递归公共表…

2024 Testing Expo China – Automotive I 风丘与您相约上海世博馆

2024汽车测试及质量监控博览会(中国)——(Testing Expo China – Automotive)是面向整车、零部件和系统开发的各种技术和服务的盛会,展示了汽车测试、开发和验证技术的各个方面,每年在上海举行,…

使用Scala爬取安居客房产信息并存入CSV文件

使用Scala爬取安居客房产信息并存入CSV文件 本篇博客中,我们将介绍如何使用Scala语言编写一个简单的程序,来爬取安居客(Anjuke)网站上的房产信息,并将这些信息存储到CSV文件中。这个示例将涵盖HTTP请求、HTML解析、数…

Elasticsearch-高CPU优化

ES 高CPU会导致: 吞吐量下降查询响应时间增加慢查询数增加 谁占用了CPU us:user time,表示 CPU 执行用户进程的时间。(各种逻辑运算,函数,排序,复杂相关性计算,密集数据插入等等&am…

CTF-pwn-虚拟化-qemu前置知识

文章目录 参考地址相关交互相关配置相关调试待完善(以后做题用到啥再加吧) 参考 https://xz.aliyun.com/t/6562?time__1311n4%2bxnD0DRDBAiGkDgiDlhjmYh2xuCllx7whD&alichlgrefhttps://www.bing.com/#toc-3 地址相关 每个qemu虚拟机都是宿主机上…

springboot3 连接 oceanbase + logproxy数据同步到redis

我这用的是 社区版的 单机, rocky liunx 安装oceanbase 注意事项: logproxy 是 CDC 模式 , springboot 可以直接订阅 canal 是 binlog模式, canal 订阅 logproxy, springboot 订阅 canal logproxy 也可以转 bi…

学校教育为什么要选择SOLIDWORKS教育版?

在数字化和智能化时代,学校教育正面临着挑战与机遇。为了培养具备创新能力和实践技能的新时代人才,学校教育需要引入先进的教学工具和资源。SOLIDWORKS教育版作为一款专为教育和培训目的而设计的软件,以其全方面的功能、友好的用户界面、丰富…

在自托管基础设施上使用 GitOps 部署 MinIO

基于MinIO Weaviate Python GitOps探索的见解,本文探讨了如何增强软件部署流程的自动化。 通过将 GitHub Actions 与 Docker Swarm 集成而产生的协同作用,以自托管基础架构的稳健性为基础,标志着 CI/CD 实践的关键进步。这种方法不仅利用了软…

索尼MXF文件断电变2G恢复方法(PXW-Z280V)

PXM-Z280V算是索尼比较经典的机型,也是使用MXF文件格式的机型之一。近期接到很多例索尼MXF量突然不正常的案例(如变成512字节或者2G),下面来看下这个案例。 故障存储: 128G存储卡 /文件系统:exFAT 故障现象: 客户反…

《数据结构与算法基础》——1.2基本概念和术语

一、本章结构 二、四个数据相关专业名词的解释 两者的区别 三、数据结构相关内容 四、逻辑结构的分类 五、存储结构的分类及四种基本存储结构 六、数据类型和抽象数据类型

跑通并使用Yolo v5的源代码并进行训练—目标检测

跑通并使用Yolo v5的源代码并进行训练 摘要:yolo作为目标检测计算机视觉领域的核心网络模型,虽然到24年已经出到了v10的版本,但也很有必要对之前的核心版本v5版本进行进一步的学习。在学习yolo v5的时候因为缺少论文所以要从源代码入手来体验…

JavaScript的学习之旅之基本数据类型

目录 一、字面量(常量)和变量 二、标识符 三、数据类型 1.String类型 2.Number类型 四、布尔值类型 五、Null和Undefined类型 一、字面量(常量)和变量 字面量:不可变的数据,一般位于等式的右边 变量&…

注册安全分析报告:PingPong

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

深度剖析现阶段的多模态大模型做不了医疗

导读 在人工智能的这波浪潮中,以ChatGPT为首的大语言模型(LLM)不仅在自然语言处理(NLP)领域掀起了一场技术革命,更是在计算机视觉(CV)乃至多模态领域展现出了令人瞩目的潜力。 这些…

芯片制作流程

1、系统需求-》设计-》光罩-》芯片制造-》检测-》封装-》测试。 光罩-》光阻涂布-》曝光-》显影和烘烤-》刻蚀-》等离子体去胶-》湿法刻蚀 化学机械研磨-》薄膜沉积-》制作金属薄膜-》化学气相沉积-》离子注入

探索序列到序列模型:了解编码器和解码器架构的强大功能

目录 一、说明 二、什么是顺序数据? 三、编码器解码器架构的高级概述: 3.1 编码器和解码器架构的简要概述: 3.2 训练机制:编码器和解码器架构中的前向和后向传播: 四、编码器解码器架构的改进: 4.1.…

王老吉“杀疯啦”?传统品牌如何创新营销“破圈”而出

好像现在年轻人都不热衷喝凉茶更偏爱咖啡了,没关系,王老吉带着“冰中式”向你走来了。 四月底,王老吉和肯德基K咖啡联名,推出了王老吉风味的气泡美式。可能乍一听觉得奇奇怪怪,而后细想,凉茶味儿的咖啡&am…

QListWidget、QMenu、Action、customContextMenuRequested

QListWidget的初始化、清空、Append添加、Insert添加、删除item QListWidget的事件的使用 QToolBox的使用,每个Page可以添加其他控件 QToolBar使用代码添加QMenu,QMenu添加3个Action QToolButton绑定Action 布局 其中 QSplitter比较特殊, 允许在水平或垂…