python_numpy库_ndarray的聚合操作、矩阵操作等

一、ndarray的聚合操作

1、求和np.sum()
import numpy as np
​
n = np.arange(10)
print(n)
​
s = np.sum(n)
print(s)
​
n = np.random.randint(0,10,size=(3,5))
print(n)
s1 = np.sum(n)
print(s1)   #全部数加起来
s2 = np.sum(n,axis=0)
print(s2)   #表示每一列的多行求和
s3 = np.sum(n,axis=1)
print(s3)   #表示每一行的多列求和
2、最小值np.min
3、最大值np.max
4、平均值np.mean
5、平均值np.average
6、中位数np.median
7、百分位数np.percentile
8、最小值对应的下标np.argmin
9、最大值对应的下标np.argmax
10、标准差np.std
11、方差np.var
12、次方,求幂np.power
13、按条件查找np.argwhere
14、np.nansum
  • *nan:数值类型,not a number:不是一个正常的数值,表示空

  • *np.nan:float类型

#对于含有空的数组,要用np.nansum进行求和
n = np.array([1,2,3,np.nan])
print(n)
#实质是去掉空值后的数组进行求和
s4 = np.nansum(n)
print(s4)

二、矩阵操作

1、基本的矩阵操作

算术运算符:加减乘除

矩阵和矩阵之间运算

数与矩阵运算

2、矩阵乘积

np.dot(第一个矩阵的列数等于第二个矩阵的行数)

import numpy as np
​
n1 = np.random.randint(0,10,size=(4,4))
n2 = np.random.randint(0,10,size=(4,5))
print(n1,n2)
print()
n3 = np.dot(n1,n2)
print(n3)
3、矩阵的逆
n4 = np.linalg.inv(n2)
print(n4)
4、行列式的计算
n5 = np.round(np.linalg.det(n1))
print(n5)
5、矩阵的秩
n6 = np.linalg.matrix_rank(n1)
print(n6)

三、ndarray的广播机制

(1)、为缺失的维度补维度

(2)、缺失元素用已有的数组填充

import numpy as np
​
x = np.full(shape=(3,3),fill_value=2)
print(x)
y = np.arange(3)
print(y)
z = x+y
print(z)
#注:第二个数组会自动补上两行[0 1 2],然后在进行相加

四、数学操作

import numpy as np
​
n = np.array([1,2,3,5,5,44,55,66])
​
#绝对值
print(np.abs(n))
#平方根
print(np.sqrt(n))
#平方
print(np.square(n))
#指数
print(np.exp(n))
#自然对数
print(np.log(n))
#以2为底的对数
print(np.log2(n))
#以10为底的对数
print(np.log10(n))
#正弦函数
print(np.sin(n))
#余弦函数
print(np.cos(n))
#正切函数
print(np.tan(n))
#向上取整
print(np.ceil(n))
#四舍五入
print(np.round(n,2))
#向下取整
print(np.floor(n))
#累加
print(np.cumsum(n))

五、ndarray的排序

1、np.sort()

不改变输入

import numpy as np
​
n = np.array([55,44,8,2,9,7,3,6])
print(np.sort(n))
print()
2、ndarray.sort()

本地处理,不占用空间,但不改变输入

import numpy as np
​
n1 = np.random.randint(0,10,size=8)
print(n1)
n1.sort()
print(n1)

六、文件操作

1、保存数组到npy或npz文件

save:保存ndarray到一个npy文件。

savez:将多个array保存到一个npz文件中。

import numpy as np
​
x = np.arange(5)
y = np.arange(10,20)
​
np.save('x',x)
np.savez('arr.npz',xarr = x,yarr = y)
a = np.load('x.npy')
b = np.load('arr.npz')['yarr']
​
print(a)
print(b)
2、保存数组到csv或txt文件
n = np.random.randint(0,10,size=(3,4))
#存储到csv或txt
#delimiter = ',':分隔符
np.savetxt('arr.csv',n,delimiter=',')
#读取csv或txt
#注:最新版numpy不能用dtype要用astype
c = np.loadtxt('arr.csv',delimiter=',').astype(np.int8)
print(c)

你可能感兴趣的:(numpy,python,矩阵)