python之NumPy基础

注:因为初次接触Numpy,这篇总结中有些知识点的理解参考了其他博主的文章。

使用时首先导包:
import numpy as np

1、seed
作用是使得随机数据可预测。
np.random.seed(相同值)

若seed后参数为不同值或者为空值,那么每次生成的随机数就不一样了。

参考资料得:
seed( ) 用于指定随机数生成时所用算法开始的整数值。
1.如果使用相同的seed( )值,则每次生成的随即数都相同;
2.如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
3.设置的seed()值仅一次有效

2、创建数组
np.array(数据值)
#数据值中既可以是单个值,也可以写多维数组。

3、nidm
数组的维度
ndarray.nidm(维度)

4、shape
ndarray.shape
数组中每个维度的大小.对于一个n行和m列的矩阵,其shape为(n,m)。

5、size
ndarray.size
表示数组中元素的个数,其值等于shape中所有整数的乘积。

6、dtype
ndarray.dtype
用来描述数组中元素的类型,ndarray中的所有元素都必须是同一种类型,如果在构造数组时,传入的参数不是同一类型的,不同的类型将进行统一转化。

7、特殊函数
np.zeros((n,m,p,…)) #创建一定维度的全是0的数组
np.ones((n,m,p,…)) #同上,全是1
np.arange(m) #产生0~m-1的一维数组
np.arange(n,m,p)#产生从n~m-1,每次相隔p的等差数列
np.linspace(n,m,p) #产生从n~m-1的p个数。
np.eye(n) #生成n行/列的对角矩阵
np.random.random(n,m) #生成n行m列的[0,1)的浮点数随机数。

8、索引
array创建的数组有索引,可以直接对索引赋值来修改数组的数据。

9、切片
以元组的形式
x[a:b,c:d]
比如x[0:2 , 1:3],逗号左边产生0,1 逗号右边产生1,2 所以会产生行为0和1,列为1和2的数列。这是针对二维数组,如果是多维数组,需要多个逗号分隔,逗号之间的切片决定了第几维数的取值范围。

10、len()
len(x) #返回x中对象的长度

11、boolean值
print(x>2)会打印出x这个矩阵中大于2的boolean值,还是以矩阵形式显示。

print(x[ x>2] )会打印出矩阵中x>2为true的数据值。

12、数学操作
np.add(x,y) #x+y
np.subtract(x,y) #x-y
np.multiply(x,y) #x*y

#注意,这里说的数据操作针对的是矩阵中各个元素的加减法,,并不是整个矩阵的加减法。

对整个矩阵的乘法操作用**dot()**函数。
np.dot(x,y)或者x.dot(y)
###所得到的数组中的每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵与该元素列号相同的元素,两两相乘后再求和。

sum() #对元素求和

print ("sum all: ", np.sum(x)) # adds all elements
print ("sum by col: ", np.sum(x, axis=0)) # add numbers in each column
print ("sum by row: ", np.sum(x, axis=1)) # add numbers in each row

矩阵转置transposing:
x.T

tile()函数
tile(x,m,n)
把x矩阵扩展成m行n列。
Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。

数组广播broadcast
用于处理不同维度的数组计算问题,如果两个数组的shape值不同,那么应用broadcast,shape小的数组会broadcast成大数组的size。
应用时没有具体函数,直接进行数学运算就好。

reshape
在不改变数据内容的情况下,改变数据的格式。
np.reshape(x,(n,m))
对矩阵x重排成n行m列。

squeeze
从数组的形状中删除单维条目,即把shape中为1的维度去掉
np.squeeze(x,1)

expand_dims
对数组添加维数。
np/expand_dims(x,索引号)
#在该索引处对shape添加1,例如:
x.shape为(2,3)
y = np.expand_dims(x, 1)
那么y.shape为(2,1,3)

猜你喜欢

转载自blog.csdn.net/weixin_43782979/article/details/86651593
今日推荐