python numpy 库的一些常用操作

numpy是python的科学计算库之一;非常适合用于矩阵的运算,他的核心就是ndarray;

那么他都有那些操作呢:

1:首先就是读取文件了,举一个经常操作的文件类型.csv文件

使用的是genfromtxt('filename',dtype),但是我们一般不用numpy来读文件

有一个建立在numpy基础之上的pandas库更适合来读取文件,并对文件进行处理:

2:如果用array定义数组,传进来的是一个一维数组,没有嵌套list那么,这就是一个向量,

注意他的shape是(x,)这种类型的,这是很坑的,在神经网络中你在用这种向量去乘以矩阵

的时候会报秩错误,这是后就要用到reshape这个函数了,把他转化成(-1,x)的形式,就可以进行矩阵操作了,

在做神经网络的时候要时刻注意矩阵的形状,有很多错误都是矩阵形状引起的;

3:我在实现中发现一个与list不同的操作,

array类型的数在取的时候可以通过array[1,2],和array[1][2]取,这两种取法得到的结果是一样的;

但是在list中就只能用第二种方法取多维数组;

4:array同时也支持,python的切片操作;如:

metrix = np.array([[1,2,3],[4,4,5]]) metrix[:,2] 意思是取出所有行的但是只取第二列;


5:对于array的加减乘除操作,如果维度相同,则是对应的元素进行操作,但是如果是只有一个则是所有元素进行操作;

当然,对于一些特殊操作,如比较操作,也是对所有元素进行的操作;

6:numpy 中的类型转换使用的astype(type)来进行的,在深网网络中经常会遇到typeerror的错误,可能只需要在你定义的数组后面加上一个astype就能解决;

7:当然还有一些函数操作,如min。max,sum 函数,在用的时候注意看一下参数,可能有些需要指定维度(axis)

通常asix=0是按列,axis=1是按行来操作的;

8:np也能通过一个arange的函数产生一个连续的序列;np.arrage(start,stop,step)就跟python中的range函数相同,

产生这样一个序列之后还能通过reshape操作来给他变形,这里需要注意的是,shape的形状要和元素个数相同;

9:size函数是获取数组中有多少个元素;

10:这下到了一些np.array的常见初始化了,

np.zeros生成一个0矩阵np.ones则是单元矩阵;当然在初始化的时候也可以指定类型;

np.arange()

np.random.random((2,3)) 注意这几个初始化,除了arange()意外,其他的接受的形状参数都是一个list或者是tuple,不然会报参数错误;

11:

有了arange这生成数组,还有一个就是linspace(0,2,100)这是在0到2这个区间内平均找100个数组成一个数组;

12:矩阵的乘法有一个是点乘,也就是对应元素相乘,还有一个是乘是通过np.dot来实现的,是行乘以列,

有两种形式,一种是a.dot(b) ,,,,np.dot(a,b)两种结果相同;

猜你喜欢

转载自blog.csdn.net/weixin_38859557/article/details/80975735