numpy是什么模块(Numpy是什么)
import numpy as np是什么意思?
这是使用的numpy模块中的随机函数。
1、numpy.ndarray.shape 返回一个数组维度的元组比如12345678import numpy as npx = np.array([1, 2])y = np.array([[1],[2]])print x.shapeprint y.shape(2,)(2, 1)注:x[1,2]的shape值(2,)。
2、意思是一维数组,数组中有2个元素y[[1],[2]]的shape值是(2,1),意思是一个二维数组,每个数组中有1个元素, from numpy import 然后就可以使用你的random.rand(4,4)了不过,不建议这样导入。
拓展资料:
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
一个用python实现的科学计算包。包括:
1、一个强大的N维数组对象Array;
2、比较成熟的(广播)函数库;
3、用于整合C/C++和Fortran代码的工具包;
4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
参考资料:百度百科-numpy
python数据分析模块:numpy、pandas全解
一维数组情况:
二维数组情况:
3参数情况:
2参数情况:
1参数情况:
一维情况:
二维情况:
一维情况:
二维情况:
一维情况:
二维情况:第三个参数指定维度
只查看行数、或者列数
逗号隔开两个索引
某些行
某些列
可以看出append()函数在二维数组中添加元素,结果转为了一维数组。
那怎么保持二维数组呢?可以设置axis参数按行或者按列添加
可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。
那么怎么保持在二维添加元素呢? 同样设置axis参数
也分按行和按列删除
标记缺失值: isnan()函数
补充缺失值:
同样axis参数可以指定拼接按行还是按列
2. hstack()函数:以水平堆叠的方式拼接数组
3. vstack()函数:以垂直堆叠的方式拼接数组
第二个参数还可以是数组,指定拆分的位置
hsplit()函数:横向拆成几个数组
vsplit()函数:纵向拆成几个数组
数组与数组之间的运算
数组与数值的运算
可以指定整个数组求和,还是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有两个重要的数据结构对象:Series和DataFrame。
Series是创建一个一维数组对象,会自动生成行标签。
会自动生成行列标签
也可以用字典形式生成数据
在用字典生成数据的基础上,同时指定行标签
例如对下表的数据进行读取
4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。
可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。
可以看出不给出header参数时,该参数默认为0。
header=1时结果如下:
header=None时结果如下:
index_col=0时,第0列为列标签
index_col=0时
usecols=[2]:指定第二列
指定多列
数据如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]
nrows=3时
head()函数中参数为空默认前5行
指定head(3)时如下
numpy模块也是shape
查看特定列的书库类型
特定列数据类型转换
先查看一下所有数据
与单行相比,结果显示的格式不一样了
iloc()挑选:
或者给出区间
挑选数据要么标签,要么索引挑选
或者
或者写成区间
标签挑选
或者索引挑选
先查看一下数据
或者用字典一对一修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]
isin()函数查看表中是否有该值
查看特定列是否有该值
可以看出上述代码并没有替换,那怎么替换呢?
末尾插入一列
指定插入到哪列
axis参数可以指定删除行还是删除列
指定标签删除
指定索引删除
方法三
指定行标签删除
指定索引删除
方法三:
先查看所有数据
info()函数查看数据类型,还可以查看是否有缺失值
isnull()函数查看是否有缺失值
在numpy模块中用isnan()函数
删除有缺失值的行
删除整行都为缺失值的行: 需要指定how参数
不同列的缺失值设置不同的填充值
默认保留第一个重复值所在的行,删除其他重复值所在的行
保留第一个重复值所在的行
保留最后一个重复值所在的行
是重复的就删除
降序如下
参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前
获取产品为单肩包的行数据
获取数量60的行数据
获取产品为单肩包 且 数量60 的行数据
获取产品为单肩包 或 数量60 的行数据
stack()函数转换成树形结构
how参数指定外连接
on参数指定按哪一列合并
concat()函数采用 全连接 的方式,没有的数设置为缺失值
重置行标签
效果与concat()一样
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
获取单列的
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
ta = pd.read_excel(‘相关性分析.xlsx’)
print(data)
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链图片转存中…(img-46g9qgQw-1637655972913)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
python(pandas模块)?
1.什么是pandas? numpy模块和pandas模块都是用于处理数据的模块。 numpy主要用于针对数组进行统计计算,处理数字数据比较方便。 pandas除了可以处理数字数据,还可...
numpydoc与numpy关系
numpydoc是numpy的一种格式。
numpy是一个很基础很底层的模块,其重要性不言而喻,可以说对于新手来说是最基础的入门必须要学习的其中之一。
在很多数据分析,深度学习,机器学习亦或是人工智能领域的模块中,很多的底层都会用到这个模块,是必知必会的一个基础模块。
numpy是一个高性能科学计算和数据分析的基础包,它是pandas等其他各种工具的基础。
Numpy基础20问
一言以蔽之,numpy是python中基于数组对象的科学计算库。
提炼关键字,可以得出numpy以下三大特点:
因为numpy是一个python库,所以使用python包管理工具pip或者conda都可以安装。
安装python后,打开cmd命令行,输入:
即可完成安装。
n维数组(ndarray)对象,是一系列 同类数据 的集合,可以进行索引、切片、迭代操作。
numpy中可以使用 array 函数创建数组:
判断一个数组是几维,主要是看它有几个轴(axis)。
一个轴表示一维数组,两个轴表示二维数组,以此类推。
每个轴都代表一个一维数组。
比如说,二维数组第一个轴里的每个元素都是一个一维数组,也就是第二个轴。
一维数组一个轴:
二维数组两个轴:
三维数组三个轴:
以此类推n维数组。
numpy中常用 array 函数创建数组,传入列表或元组即可。
创建一维数组,并指定数组类型为 int :
创建二维数组:
还可以使用 arange 函数创建一维数字数组,用法类似python的 range 函数.
numpy的 random 模块用来创建随机数组。
random模块还有其他函数,这里不多说。
前面说到,数组维度即代表轴的数量。
我们可以通过数组(adarray)对象的ndim或shape属性,来查看轴的数量。
数组(ndarray)对象的 size 属性可以查看数组包含元素总数。
还可以通过 shape 属性返回元素的乘积,来计算数组元素数量。
Numpy支持的数据类型非常多,所以很适合做数值计算。
下面给出常见的数据类型:
数组(adarrry)对象提供 dtype 属性,用来查看数组类型。
前面说过,数组的 shape 属性返回一个元组,能够反映数组的形状,包括维度以及每个轴的元素数量。
那么如果给定一个数组,怎么改变其形状呢?
常用的方式有两种:
比如说我要将一个二维数组转换为三维数组。
reshape 方法可以传入整数或者元组形式的参数。
传入的参数和 shape 属性返回的元组的含义是一样的。
例如, x2.reshape(1,2,3) 是将二维数组转换成三维数组,参数个数代表要转换的维度,参数数字从左到右分别表示0轴、1轴、2轴的元素数量。
resize 方法和 reshape 方法使用形式一样,区别是 resize 方法改变了原始数组形状。
numpy一维数组的索引和切片操作类似python列表,这里不多讲。
比如说取一维数组前三个元素。
重点是对多维数组的索引和切片。
多维数组有多个轴,那么就需要对每个轴进行索引。
例如,三维数组形状为(x,y,z),分别代表:0轴有x个元素、1轴有y个元素,2轴有z个元素。
对0、1、2轴进行索引,如果取o轴第2个元素、1轴第0个元素、2轴第3个元素,那么索引形式就为[2,0,3]。
切片也是同样道理。
如果取o轴前2个元素、1轴前1个元素、2轴后2个元素,那么切片形式就为[:2,:1,-2:]。
说到迭代,大家很容易想到直接对数组直接使用 for 循环操作,对于一维数组来说,当然是可以的。
但对于多维数组,迭代是相对于0轴完成的,就是多维数组最外层的那一维。
你没有办法直接遍历数组里每一个元素,嵌套循环又太低效。
这个时候就需要用到 flat 方法,它可以将多维数组平铺为一维的迭代器。
数组(ndarray)对象提供了ravel方法,用来将多维数组展开为一维数组。
广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对多个数组的算术运算通常在相应的元素上进行。
较小的数组在较大的数组上“广播”,以便它们具有兼容的形状。
比如说一个一维数组乘以一个数字,相当于一维数组里每个元素都乘以这个数。
如果相同维度的数组进行运算,其shape相同,那么广播就是两个数组相同位数的元素进行运算。
如果两个数组维度不同,进行运算,这里就触发了广播的两个规则。
这两个规则保证了不同维度数组进行运算时,其维度自动调整成一致。
numpy提供了 transpose 函数用以对数组进行维度的调换,也就是转置操作。
转置后返回一个新数组。
当然,可以用更简单的方法。
数组对象提供了 T 方法,用于转置,同样会返回一个新数组。
numpy的 concatenate 函数用于沿指定轴连接相同形状的两个或多个数组。
numpy的 unique 函数用于去除数组中的重复元素,返回一个新数组。
unique 函数还能返回重复元素的索引、计数等信息,可去查文档自定义参数。
numpy文档
菜鸟教程
python numpy是库还是模块
在python里,一个模块是单个py文件(或者是多个py文件)
模块是在一个导入下导入并使用的单个文件(或多个文件)。如
import?my_module
而包是提供包层次结构的目录中的模块集合,每个目录中都会含有__init__.py文件。
from?my_package.timing.danger.internets?import?function_of_love
通常我们会将包叫成库,库有仓库,集合的意思
所以针对问题numpy是库还是模块
我个人觉得,根据需要来确定了。当你需要numpy时它可以叫做包(库),但你在编写代码实现功能时,它就是作为模块来使用,它应该叫模块。这是个人看法,并非标准答案,仁者见仁智者见智了。