python的numpy库常用方法整理

感谢大家的阅读,毕竟是隔壁小王一笔一划打出来的,可转勿抄,多谢支持~

1.概述

numpy是用来操作矩阵的python库。

在需要查阅官方文档时,可以通过print(help(模块名.函数名))来查看官方的注释。

 

2.基本功能简介

2.1 genfromtxt(args)

用于打开txt文档,读出的结果均是矩阵的格式。

 

2.2 核心结构array

通过numpy.array(...)来构造对象。

构建向量:numpy.array([1, 2, 3])

构建矩阵:numpy.array([[1, 2, 3], [4, 5, 6]])

 

注意:在普通list中,每个元素的类型是不固定的;但是在array中,每个元素的类型必须是一

致的,如果类型不一致,array会自动转换。

 

创建出的array对象会有如下属性:

shape:这是一个维度描述,会描述对象是几行几列。

dtype:可以查看array元素是属于何种类型。

 

array获取数值的方法举例:

[:, 1]获取第2列中所有元素的值。

[:, 0:2]获取前两列中所有元素的值。

[1:3, 0:2]获取第2、3行,第1、2列的所有元素值。

...

 

array的常用操作方法:

1.判断

vector = numpy.array([5, 10, 15, 20])

当操作vector == 10时,返回的结果是[false, true, false, false],array会将每个元素与该

值比较的结果返回出来。

 

2.索引

s = (vector == 10)

vector[s]

此时会返回[10],所以说s会将true对应的值返回出来,相当于索引。

扩展下:s = (vector == 10) | (vector == 5)

 

3.转换

array.astype()方法,可以对array中的数据进行类型转换。

 

4.最小值

array.min()

 

5.按行/列求和

array.sum(axis=0/1)

 

6.初始化

numpy.zeros((3, 4)):表示生成三行四列的矩阵,但是数值都是0。

numpy.ones((3, 4)):表示生成三行四列的矩阵,但是数值都是1。

numpy.ones((3, 4), detype = numpy.int32):表示生成三行四列的矩阵,但是数值都是1并

设置了相应的类型。

 

7.运算操作

两个想同维度的array相减,实际上是对应位置上的元素相减。

如果对一个array进行整体的加减乘除,例如array + 1、array * 2实际上是对每个元素进

行相同的操作。

 

8.内积操作

arrayA * arrayB,对应位置进行相乘。

 

9.矩阵乘法操作

arrayA.dot(arrayB)

或者

numpy.dot(arrayA, arrayB)

 

10.将矩阵转换成向量的形式

array.ravel()

 

11.设置矩阵的shape

array.shape = (n, m)

 

12.转置

array.T

 

13.浅复制

array.view()

对象的id不同,但是公用一组内存数据,因此不推荐使用。

 

14.深复制

array.copy()

 

15.返回每列/行最大值的索引

array.argmax(axis=0/1)表示找出每列/行中最大元素的索引。

 

16.将array进行多份复制

例如:

a = numpy.arange(0, 40, 10)

b = np.tile(a, (4, 2))

则会出现:

[[0 10 20 30 0 10 20 30]

[0 10 20 30 0 10 20 30]

[0 10 20 30 0 10 20 30]

[0 10 20 30 0 10 20 30]]

即在行方向上复制4次,在列方向上复制2次。

 

2.3 numpy.arange()

例如:numpy.arange(5),则会产生[0, 1, 2, 3, 4]。

例如:numpy.arange(15).reshape(3, 5),则会产生3行5列的举证,值为0-14。

例如:numpy.arange(10, 30, 5),则会产生[10, 15, 20, 25]。

 

使用numpy.arange产生的矩阵具有如下属性:

shape:维度详情,几行几列

ndim:输出几维

dtype.name:类型名

size:元素个数

 

2.4 numpy.random.random(n, m)

生成一个n行m列的矩阵,每个矩阵的元素的值是一个在正负1之间的随机值。

 

2.5 numpy.linspace(n, m, z)

表示在n到m之间,平均生成z个元素。

 

2.6 numpy.exp(array)

该方法返回的是以array中每个元素为幂,e为底的矩阵。

 

2.7 numpy.sqrt(array)

效果同上。

 

2.8 numpy.floor(array)

对array中的每个元素进行向下的取整。

 

2.9 numpy.vstack((arrayA, arrayB))

将两个矩阵按照行进行拼接。

 

2.10 numpy.hstack((arrayA, arrayB))

将两个矩阵按照列进行拼接。

 

2.11 numpy.hsplit(array, 3)

将array按照列列的方向平均切分成3份。

如果只想在某个位置切分,例如在第4列前和第5列前分别切分,则使用numpy.hsplit(a, (3,

4))。

 

2.12 numpy.vsplit(array, 3)

按行均分,效果同上。

 

2.13 numpy.sort(array, axis=0/1)

对array的元素进行按列/行进行从小到大排序。

 

2.14 numpy.argsort(array, axis=0/1)

对array的元素索引进行按列/行进行从小到大排序。

 

猜你喜欢

转载自blog.csdn.net/BmwGaara/article/details/81612763
今日推荐