如何进行Python Numpy的入门(numpy,python,编程语言)

时间:2024-05-06 02:43:05 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    %E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8CPython+Numpy%E7%9A%84%E5%85%A5%E9%97%A8

Numpy是python语言中最基础和最强大的科学计算和数据处理的工具包,如数据分析工具pandas也是基于numpy构建的,机器学习包scikit-learn也大量使用了numpy方法。本文介绍了Numpy的n维数组在数据处理和分析的所有核心应用。

1.如何构建numpy数组

构建numpy数组的方法很多,比较常用的方法是用np.array函数对列表进行转化。

数组和列表最关键的区别是:数组是基于向量化操作的,列表不是,我们在实际项目中处理的数据一般是矩阵结构,对该数据以行向量或列向量的形式进行计算,向量计算是基于数组实现的,因此数组比列表的应用更广。

函数可以应用到数组的每一项,列表不行。

比如,不可以对列表的每一项数据都加2,这是错误的。

可以对数组的某一项数据都加2

另一个区别是已经定义的numpy数组不可以增加数组大小,只能通过定义另一个数组来实现,但是列表可以增加大小。

然而,Numpy有更多的优势,让我们一起来发现。

numpy可以通过列表中的列表来构建二维数组。

你也可以通过dtype参数指定数组的类型,一些最常用的numpy类型是:'float','int','bool','str'和'object'。

输出结果的小数点表示float类型,你也可以通过 astype方法转换成不同的类型。

另一个区别是数组要求所有项是同一个类型,list没有这个限制。如果你想要一个数组包含不同类型,设置‘dtype’为'object'。

最终使用 tolist()函数使数组转化为列表。

总结数组和列表主要的区别:

数组支持向量化操作,列表不支持;

数组不能改变长度,列表可以;

数组的每一项都是同一类型,list可以有多种类型;

同样长度的数组所占的空间小于列表;

2.如何观察数组属性的大小和形状(shape)

一维数组由列表构建,二维数组arr2d由列表的列表构建,二维数组有行和列,比如矩阵,三维数组由嵌入了两个列表的列表构建。

假设给定一个数组,我们怎么去了解该数组的属性。

数组的属性包括:

数组的维度(ndim)

数组的形状(shape)

数组的类型(dtype)

数组的大小(size)

数组元素的表示(通过索引)

3. 如何从数组提取特定的项

数组的索引是从0开始计数的,与list类似。numpy数组通过方括号的参数以选择特定的元素。

numpy数组支持布尔类型的索引,布尔型索引数组与过滤前(array-to-be-filtered)的数组大小相等,布尔型数组只包含Ture和False变量,Ture变量对应的数组索引位置保留了过滤前的值 。

3.1 如何反转数组

3.2 如何处理数组的缺失值(missing)和无穷大(infinite)值

缺失值可以用np.nan对象表示,np.inf表示无穷大值,下面用二维数组举例:

3.3 如何计算n维数组的平均值,最小值和最大值

如果要求数组的行或列的最小值,使用np.amin函数

对数组的每个元素进行累加,得到一维数组,一维数组的大小与二维数组相同。

4.如何从现有的数组定义新数组

如果使用赋值运算符从父数组定义新数组,新数组与父数组共占同一个内存空间,如果改变新数组的值,那么父数组也相应的改变。

为了让新数组与父数组相互独立,你需要使用copy()函数。所有父数组都使用copy()方法构建新数组。

5.多维数组的重构(reshaping)和扁平(flattening)

重构(reshaping)是改变了数组项的排列,即改变了数组的形状,未改变数组的维数。

扁平(flattening)是对多维数组转化为一维数组。

5.1 flatten()和ravel()的区别

数组的扁平化有两种常用的方法,flatten()和ravel() 。flatten处理后的数组是父数组的引用,因此新数组的任何变化也会改变父数组,因其未用复制的方式构建数组,内存使用效率高,ravel通过复制的方式构建新数组。

6.如何通过numpy生成序列数(sequences),重复数(repetitions)和随机数(random)

np.arrange函数手动生成指定数目的序列数,与ndarray作用一样。

上例是通过np.arrange设置初始位置和结束位置来生成序列数,如果我们设置数组的元素个数,那么可以自动计算数组的递增值。

如构建1到50的数组,数组有10个元素,使用np.linspace总动计算数组的递增值。

我们注意到上面例子的递增值并不相等,有5和6两个值,原因是计算递增值采用了四舍五入的算法(rounding)。与np.linspace类似,np.logspace以对数尺度的方式增长。

初始化数组的元素全为1或全为0。

6.1如何构建重复的序列数

6.2 如何生存随机数

random模块包含的函数可以生成任一数组形状的随机数和统计分布。

6.3 如何得到数组独特(unique)的项和个数(counts)

np.unique函数去除数组中重复的元素,设置return_counts参数为True,得到数组每一项的个数。

对numpy的基本用法不太熟悉的伙伴,重点可以看一下了!

本文:如何进行Python Numpy的入门的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Python怎么格式化字符串下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18