欢迎光临散文网 会员登陆 & 注册

Numpy学习笔记

2023-06-21 19:05 作者:狸猫扑扑  | 我要投稿

1.基本操作

1.1列表转为矩阵:np.array(list)

1.2维度:array.ndim

1.3行数和列数:array.shape

1.4元素个数:array.size

2.创建array

2.1一维array创建:np.array(list,dtype=np.int32)              #np.int默认int32

2.2多维array创建:np.array(list1,List2)

2.3创建全零数组:np.zeros((valu1,valu2))     #生成value1value2列全零矩阵

2.4创建全1数组:np.ones((valu1,valu2)dtype=np.int)

2.5创建全空数组:np.empty((valu1,valu2))

2.6创建连续数组:np.arange(a1,an,步长)

2.7reshape改变数据形状:array.reshape((valu1,valu2))

2.8创建连续型数据:np.linspace(1,10,20) #开始端1,结束端10,分割成20个数据

2.9Linspacereshape操作:array.reshape((valu1,valu2))

3.Numpy基本运算

3.1一维矩阵的运算

3.2多维矩阵的运算:(1np.dot(ndarray1,ndarray2)       (2)a.dot(b)

查找时,axis0,以列为查找单位;axis1时,以行为查找单位。Array, axis=0 or 1

3.3基本计算:

最小元素索引np.argmin(array)

最大元素索引np.argmax(array)

整个矩阵的均值np.mean(array) or np.average(array) or array.mean()

中位数np.median(array)

累加np.cumsum(array)

累差np.diff(array)

矩阵每一行排序从小到大np.sort(array)

矩阵转置np.transpose(array) or array.T

Clip:np.clip(Array,Array_min,Array_max)

clip(Array,Array_min,Array_max)

Array_min<X<Array_max  X表示矩阵A中的数,如果满足上述关系,则原数不变。

否则,如果X<Array_min,则将矩阵中X变为Array_min;

如果X>Array_max,则将矩阵中X变为Array_max.

4.NumpyS索引与切片

打印列,进行转置即可:for column in array.T:

多维转一维:array.flatten()          #array.flat是一个迭代器

5.Numpy array合并

5.1数组合并

上下合并:np.vstack((array1,array2))

左右合并:np.hstack((array1,array2))

5.2数组转矩阵:array[np.newaxis,:]

5.3多个矩阵合并:np.concatenate((array1,array2,…),axis=0 0r 1)   #0时纵向合并;1时横向合并   

6.Numpy array分割

6.1构造34列矩阵:np.arange(12).reshape((3,4))            #范围0~11

6.2等量分割:np.split(array,number,axis=1)                         #纵向分割的axis

np.split(array,number,axis=0)                                                   #横向分割的axis

6.3不等量分割:np.array_split(array1,number,axis=1)

6.4其他分割方式:np.vsplit(array1,number)                        #横向分割

Np.hsplit(array1,number)                                                         #纵向分割

7.Numpy copy与=

7.1=”赋值有关联性(改变其中任意一个都会改变其他的数据,无论程序先后):

import numpy as np

a = np.arange(4)

print(a) # [0 1 2 3]

b = a

c = a

d = b

a[0] = 11

print(a)               # [11  1  2  3]

print(b)        # [11  1  2  3]

print(c)               # [11  1  2  3]

print(d)         # [11  1  2  3]

7.2cope()没有关联性:b=a.copy()

8.广播机制

numpy数组间的基础运算是一对一,也就是a.shape==b.shape,但是当两者不一样的时候,就会自动触发广播机制,如下例子:

from numpy import array

a = array([[ 0, 0, 0],

           [10,10,10],

           [20,20,20],

           [30,30,30]])

b = array([0,1,2])

print(a+b)

运行结果:

[[ 0  1  2]

 [10 11 12]

 [20 21 22]

 [30 31 32]]

9.常用函数

9.1np.bincount()#统计索引出现次数

x = np.array([1, 2, 3, 3, 0, 1, 4])

np.bincount(x)

结果:

array([1, 2, 1, 2, 1], dtype=int64)9.2np.argmax()numpy.argmax(array1,axis=None,out=None)

axis默认时,返回最大值的索引;axis=0时,按列操作;axis=1时,按行操作

当最大元素重复出现,返回第一个最大值索引

9.3求取精度

np.around(list,decimals=number)

实例:

np.around([-0.6,1.2798,2.357,9.67,13], decimals=0)

array([-1.,  1.,  2., 10., 13.])             #负数进位取绝对值大的decimals表示指定保留有效数的位数,当超过5就会进位(此时包含5)

decimals为负数时,实例:

np.around([1,2,5,6,56], decimals=-1)

array([ 0,  0,  0, 10, 60])

发现没,当超过5时候(不包含5),才会进位!-1表示看一位数进位即可,那么如果改为-2呢,那就得看两位!

np.around([1,2,5,50,56,190], decimals=-2)

array([  0,   0,   0,   0, 100, 200])

看到没,必须看两位,超过50才会进位,190的话,就看后面两位,后两位90超过50,进位,那么为200

9.4取整:np.floor(list)           #返回数组

负数取整向左

9.5取上限:np.ceil(list)

9.6查找:np.where(np.array(list)>0,np.array(list),0)   利用np.where实现小于0的用0填充,大于0的数不变


Numpy学习笔记的评论 (共 条)

分享到微博请遵守国家法律