小节9:Python之numpy

2023-09-20 16:37:58

numpy全称为Numerical Python,是很多数据或科学相关Python包的基础。

1、numpy数组(ND array N维数组)

numpy数组是更适合数据分析的列表。

numpy的数组和Python的内置列表有相似之处,也有不同之处。

相似之处:我们都可以通过索引去获得某个元素,可以通过切片获得某个范围的多个元素,也可以去迭代各个元素。

不同之处:numpy数组里的元素必须是同一类型的,比如全都是数字(int和float可以写在同一数组中,但类型都变成了float类型),全都是字符串等等,列表则没有这个要求。

numpy数组的优势:在对numpy数组进行大规模的数学运算或其它操作时,其执行速度远高于Python内置列表,因此,使用numpy做数据处理的首要原因它的效率更高。此外,numpy也提供了很多专门做运算的函数,如:求平均值、标准差等,为操作数据提供了很多便利。

创建一维数组:

import numpy as np
array_a = np.array([1, 2, 3])
array_b = np.array([1, 2, 2.5])
print(array_a)
print(array_b)

输出: 

 

创建二维数组(小技巧:看左边或右边有几个方括号,有几个就会被转换为几维数组):

此外,二维数组中,如果有其中一个列表中有float型,则另一个列表中的int类型元素也会被转换为float类型

array_2a = np.array([[1, 2, 3], [4, 5, 6]])
array_2b = np.array([[1, 2, 3], [4, 5, 6.5]])
print(array_2a)
print(array_2b)

输出:

2、numpy数组的一些属性(点后面名称不带括号的是属性)

1)变量名.ndim会返回给我们数组的维度

print(array_a.ndim)
print(array_2a.ndim)

2)变量名.shape会返回一个元组,表示各个维度元素的个数

array_a = np.array([1, 2, 3])
array_2a = np.array([[1, 2, 3], [4, 5, 6]])
print(array_a.shape)
print(array_2a.shape)

对于上面的一维数组,由于它在一维上有3个元素,所以返回 (3,),而那个二维数组在一维有两个元素(即两个列表),在二维有3个元素(即每个列表有3个元素),所以返回 (2, 3)

PS:如果array_2a = np.array([[1, 2, 3], [4, 5]]),则会报错,因为一个列表有3个元素,而另一个列表只有2个元素,二者元素数量不一样。

3)变量名.size会返回给我们数组中元素的总个数

array_a = np.array([1, 2, 3])
print(array_a.size)
array_2a = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2a.size)

 

4)变量名.dtype会返回给我们数组元素的类型

array_a = np.array([1, 2, 3])
print(array_a.dtype)
array_2a = np.array([[1, 2, 3], [4, 5, 5.5]])
print(array_2a.dtype)

3、numpy数组的一些方法(点后面名称带括号的是方法)

1)np.zeros()的括号中传入一个数字n,它就会返回一个全都是0的,长度为n的数组(元素类型是float)

array_0 = np.zeros(3)
print(array_0)
print(array_0.dtype)

输出:

2)np.ones()同上,元素为1

array_1 = np.ones(3)
print(array_1)
print(array_1.dtype)

输出:

3)np.arange()创建元素为数字序列的数组。参数1是起始值(在范围内),参数2是结束值(不在范围内),参数3是步长

array_arange = np.arange(1, 10, 2)
print(array_arange)

更多推荐

Tomcat服务启动失败:java.lang.OutOfMemoryError: Java heap space

具体报错:java.lang.OutOfMemoryError:Javaheapspace报错分析:这个报错表明Java程序运行时内存不足。Tomcat服务在启动时需要占用一定的内存资源,如果分配的内存不足,就会出现该错误。通常情况下,出现该错误的原因是JVM的堆内存大小不足以支持Tomcat服务的启动。报错解决过程:

数据库设计-----理论

1.2数据库基本概念1、关系:两个表的公共字段2、行:也称记录,也称实体3、列:也称字段,也称属性就表结构而言,表分为行和列;就表数据而言,分为记录和字段;就面向对象而言,一个记录就是一个实体,一个字段就是一个属性。4、数据冗余:相同的数据存储在不同的地方脚下留心:1、冗余只能减少,不能杜绝。2、减少冗余的方法是分表3

Linux服务器初始化、yum安装java、redis、mysql

目录前言一、yum安装java二、yum安装redis三、yum安装mysql前言本文使用yum命令安装部署可能会用到的相关应用安装软件包之前,我们需要先更新系统,以确保安装的软件包是最新的版本。执行以下命令:sudoyumupdate一、yum安装java1、查看可安装版本yum-ylistjava*2、安装1.8版

redis的安装和配置

文章目录1.安装Redis1.1依赖库1.2上传安装包并解压2启动Redis2.1默认启动2.2指定配置启动2.3开机自启3Redis桌面客户端3.1Redis命令行客户端3.2图形化桌面客户端3.2.1安装3.2.2建立连接1.安装Redis大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供W

红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)

目录写在开头第一步:主机发现和端口扫描第二步:Web渗透(修改XFF代理)第三步:数据库手工枚举第四步:sudophp提权总结与思考写在开头本篇博客在自己的理解之上根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。MeandMyGirlfriend这个靶机是近期

《Java8实战》

《Java实战》学习整理文章目录一、Lambda1.1基础概念1.1.1[Lambda表达式](https://baike.baidu.com/item/Lambda表达式/4585794?fromModule=lemma_inlink)定义1.2引入Lambda1.3Lambda1.3.1函数式接口1.3.2Lamb

pyecharts可视化

pyecharts是基于Echarts图表的一个类库Echarts是百度开源的一个可视化JavaScript库一、pyecharts简介pyecharts主要基于web浏览器进行显示,绘制图形(有折线图、柱状图、饼图、漏斗图、地图及极坐标图等)安装pipinstallpyecharts二、pyecharts的使用方法绘

jmeter生成html格式接口自动化测试报告

jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观。笔者刚做了这方面的尝试,总结出来分享给大家。这里需要用到ant来执行测试用例并生成HTML格式测试报告。一、ant下载安装1.1、下载地址:http://ant.apache.org/bindownload

计算机网络运维方向综合知识大全

一.基础知识1.网络的组成组成部分:硬件、软件、协议硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP程序、聊天程序等)。软件部分多属于应用层。协议是计

Mac中IntelliJ IDEA每次打开立刻“意外退出”的解决方法

本文介绍在Mac电脑中,无法打开IntelliJIDEA软件,出现“意外退出”的报错提示,且重启软件依然出现这一情况的通用解决思路与方法。最近,不知道怎么回事,点击图标准备打开IntelliJIDEA软件时,很快就会出现”IntelliJIDEA“意外退出。的提示,如下图所示。且无论怎么样重复打开IntelliJIDE

JPEG算法及例程

JPEG(JointPhotographicExpertsGroup)是一种常见的图像压缩算法,用于减小图像文件的大小。它是一种有损压缩算法,即通过牺牲一定的图像质量来实现压缩。以下是一个简单的JPEG压缩算法的例程:将输入图像转换为YUV颜色空间:将RGB颜色空间转换为亮度(Y)和色度(U和V)分量。这可以通过应用下

热文推荐