import numpy as np
a = np.random.randn(3,3)
m = np.mat(a) # 将数组转化为numpy.matrixprint(m.A) # 将矩阵转换为数组print(m.T) # 矩阵转置 print(m.I) # 求逆矩阵print(np.linalg.det(m)) # 求行列式 print(np.linalg.eigvals(m)) # 求特征值# 求解 mx = v
v = np.random.randn(3)
x = np.linalg.solve(m,v)
print(x)
存储
import numpy as np
# csv形式的保存和加载
a = np.arange(12).reshape(3,4)
np.savetxt('np.csv',a,fmt='%d',delimiter=',')
b = np.loadtxt('np.csv',dtype=np.int,delimiter=',')
print(b)
# 多维数据的存储
a = np.arange(24).reshape(2,3,4)
a.tofile('np.dat',sep=',',format='%d')
b = np.fromfile('np.dat',dtype=np.int,sep=',')
b = b.reshape(2,3,4)
print(b)
# 快捷存储
a = np.arange(24).reshape(2,3,4)
np.save('np.npy',a)
b = np.load('np.npy')
print(b)
2.pandas
Series
# 带标签的一维数组import pandas as pd
import numpy as np
#1 创建print(pd.Series([9,8,7]))
# 自动索引 0 9 1 8 2 7 print(pd.Series([9,8,7], index=['a','b','c']))
# 自定义索引 a 9 b 8 c 7print(pd.Series({'a':9,'b':8,"c":7}))
# a 9 b 8 c 7#2 属性
s = pd.Series([9,8,7,6],['a','b','c','d'])
print(s.index) # 获取索引print(s.values) # 获取值#3 索引print(s[0], s['a']) # 9 9print(s[:3]) # a 9 b 8 c 7print('c'in s) # Trueprint(s.get('f', 0)) # 0 索引不存在时返回0#4 操作
s['a'] = 90
s['b','c'] = 80
s[s > s.median()] = 100print(s)
# a 100 b 80 c 80 d 6print(s.drop(['b','c']))
# a 100 d 6 drop操作不改变s
s2 = np.exp(s)
print(s+s2)
DataFrame
# 带标签的二维数组import pandas as pd
import numpy as np
#1 创建print(pd.DataFrame(np.arange(10).reshape(2,5)))
# 0 1 2 3 4# 0 0 1 2 3 4# 1 5 6 7 8 9
dt = {'one': pd.Series([1,2,3],['a','b','c']),
'two': pd.Series([9,8,7,6],['a','b','c','d'])}
print(pd.DataFrame(dt))
# one two# a 1.0 9# b 2.0 8# c 3.0 7# d NaN 6print(pd.DataFrame(dt,index=['b','c','d'],columns=['two','three']))
# two three# b 8 NaN# c 7 NaN# d 6 NaN#2 属性
dt = {'one': [1,2,3,4], 'two': [9,8,7,6]}
d = pd.DataFrame(dt,index=['a','b','c','d'])
# one two# a 1 9# b 2 8# c 3 7# d 4 6print(d.index)
# Index(['a', 'b', 'c', 'd'], dtype='object')print(d.columns)
# Index(['one', 'two'], dtype='object')print(d.values)
print(d['one'])
print(d['one']['a']) # 1#3 运算
dt = {'one': [1,2,3,4], 'two': [9,8,7,6]}
d = pd.DataFrame(dt,index=['a','b','c','d'])
# one two# a 1 9# b 2 8# c 3 7# d 4 6print(d.add(1, fill_value=100))
print(d.sub(1))
print(d.mul(2))
print(d.div(pd.Series([2,3], index=['one','two'])))
# one two# a 0.5 3.000000# b 1.0 2.666667# c 1.5 2.333333# d 2.0 2.000000print(d > 5)
print(d > pd.Series([2,3], index=['one','two']))
# one two# a False True# b False True# c True True# d True True#4 索引排序
d = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
# 0 1 2 3 4# c 0 1 2 3 4# a 5 6 7 8 9# d 10 11 12 13 14# b 15 16 17 18 19print(d.sort_index())
print(d.sort_index(axis=1, ascending=False))
# 4 3 2 1 0# c 4 3 2 1 0# a 9 8 7 6 5# d 14 13 12 11 10# b 19 18 17 16 15#5 值排序
np.random.seed(0)
d = pd.DataFrame(np.random.randint(1,9,(4,5)),index=['c','a','d','b'])
# 0 1 2 3 4# c 5 8 6 1 4# a 4 4 8 2 4# d 6 3 5 8 7# b 1 1 5 3 2print(d.sort_values(2, ascending=False))
print(d.sort_values('d', axis=1))
# 1 2 0 4 3# c 8 6 5 4 1# a 4 8 4 4 2# d 3 5 6 7 8# b 1 5 1 2 3
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步