莫凡python可视化工具 numpy,pandas,matplotlib
numpy 学习
import numpy
import numpy as np
array = np.array([[1, 2, 3],
[4, 5, 6]], dtype=np.int64)
a = numpy.zeros((3, 4), dtype=np.int64)
a = numpy.empty((3, 4), dtype=np.int64)
a = numpy.arange(12).reshape((3, 4))
a = numpy.linspace(1, 10, 20)
a1 = np.array([10, 20, 30, 40])
print(a1 > 19)
print(a1 == 30)
b1 = np.arange(4)
c1 = a1-b1
print(a1, b1)
print(c1)
c2 = b1**2
print(c2)
c3 = 10*np.sin(a1)
print(c3)
a2 = np.array([[1, 1],
[2, 2]])
b2 = np.arange(4).reshape((2, 2))
c = a2*b2
print(c)
c_dot = np.dot(a2, b2)
c_dot2 = a2.dot(b2)
print(c_dot)
a3 = np.random.random((2, 4))
print(a3)
print(np.sum(a3, axis=1))
print(np.sum(a3, axis=0))
print(np.min(a3))
print(np.max(a3))
A = np.arange(2, 14).reshape((3, 4))
print(np.argmin(A))
print(np.argmax(A))
print(np.mean(A))
print(A.mean())
print(np.median(A))
print(np.cumsum(A))
print(np.diff(A))
print(np.nonzero(A))
A2 = np.arange(14, 2, -1).reshape((3, 4))
print(np.sort(A2))
print(np.transpose(A2))
print(np.clip(A2, 5, 9))
print(A2)
print(np.mean(A2, axis=0))
A3 = np.arange(3, 15).reshape((3, 4))
print(A3)
print(A3[2][1])
print(A3[2, :])
print(A3[1, 1:3])
for row in A3:
print(row)
print(A3.flatten())
for item in A3.flat:
print(item)
A4 = np.array([1, 1, 1])[:, np.newaxis]
B4 = np.array([2, 2, 2])[:, np.newaxis]
C = np.vstack((A4, B4))
D = np.hstack((A4, B4))
E = np.concatenate((A4, A4, B4, B4),axis=1)
print(E)
print(D)
print(A4.shape, C.shape)
print(A4[np.newaxis, :])
print(A4[:, np.newaxis])
print(A4.reshape(3, 1))
A5 = np.arange(12).reshape((3, 4))
print(np.split(A5, 3, axis=0))
print(np.split(A5, [1, 1, 2], axis=1))
print(np.array_split(A5, 3, axis=1))
print(np.vsplit(A5, 3))
print(np.hsplit(A5, 2))
pandas学习
import matplotlib
import pandas as pd
import numpy as np
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
s = pd.Series([1, 3, 6, np.nan, 44, 1])
print(s)
print("==========================================================")
dates = pd.date_range('20230922', periods=6)
print(dates)
print("==========================================================")
df = pd.DataFrame(np.random.rand(6, 4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
print("==========================================================")
df2 = pd.DataFrame({'A': 1.,
'B': pd.Timestamp('20230922'),
'C': pd.Series(2, index=list(range(4)), dtype='float32'),
'D': np.array([4] * 4, dtype='int32'),
'E': pd.Categorical(["test", "train", "test", "train"]),
'F': 'foo'})
print(df2)
print("==========================================================")
print(df2.dtypes)
print("==========================================================")
print(df2.columns)
print("==========================================================")
print(df2.values)
print("==========================================================")
print(df2.T)
print("==========================================================")
print(df2.sort_index(axis=1, ascending=False))
print("==========================================================")
print(df2.sort_index(axis=0, ascending=False))
print("==========================================================")
print(df2.sort_values(by='E'))
print("==========================================================")
print(df['A'], df.A)
print("==========================================================")
print(df[0:3], df['20230922':'20230923'])
print("==========================================================")
print(df.loc['20230922'])
print("==========================================================")
print(df.loc[:, ['A', 'B']])
print("==========================================================")
print(df.loc['20230922'], ['A', 'B'])
print("==========================================================")
print(df.iloc[3, 1])
print("==========================================================")
print(df.iloc[3:5, 1:3])
print("==========================================================")
print(df.iloc[[1, 3, 5], 1:3])
print("==========================================================")
print(df[df.A < 0.854575])
print("==========================================================")
dates = pd.date_range('20230922', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[2, 2] = 11
df.loc['20230922', 'B'] = 22
df[df.A > 4] = 0
df['E'] = np.nan
df['F'] = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range('20230922', periods=6))
print(df)
print("==========================================================")
dates = pd.date_range('20230922', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan
print(df)
print("==========================================================")
print(df.dropna(axis=0, how='any'))
print("==========================================================")
print(df.fillna(value=0))
print("==========================================================")
print(df.isnull())
print("==========================================================")
print(np.any(df.isnull()) == True)
print("==========================================================")
data = pd.read_csv("C:/Users/admin/temps.csv")
print(data)
print("==========================================================")
data.to_pickle('temps.pickle')
df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4)) * 2, columns=['a', 'b', 'c', 'd'])
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)
print(res)
print("==========================================================")
df4 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])
df5 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])
res2 = pd.concat([df4, df5], join='outer')
res2 = pd.concat([df4, df5], join='inner', ignore_index=True)
res3 = pd.concat([df4, df5.reindex(df4.index)], axis=1)
print(res2)
print("==========================================================")
print(res3)
print("==========================================================")
left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
print(left)
print("==========================================================")
print(right)
print("==========================================================")
res4 = pd.merge(left, right, on='key')
print(res4)
print("==========================================================")
data = pd.Series(np.random.randn(1000), index=np.arange(1000))
data = data.cumsum()
data.plot()
plt.show()
data = pd.DataFrame(np.random.randn(1000, 4),
index=np.arange(1000),
columns=list("ABCD"))
data = data.cumsum()
ax = data.plot.scatter(x='A', y='B', color='DarkBlue', label='Class 1')
data.plot.scatter(x='A', y='C', color='DarkGreen', label='Class 2',ax = ax)
data.plot()
plt.show()
matplotlib
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib
matplotlib.use('TkAgg')
from matplotlib import animation
import matplotlib.gridspec as gridspec
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
print('============================================================================')
fig, ax = plt.subplots()
x=np.arange(0,2*np.pi,0.01)
line, = ax.plot(x,np.sin(x))
def Animation(i):
line.set_ydata(np.sin(x+i/100))
return line,
def init():
line.set_ydata(np.sin(x))
return line,
ani = animation.FuncAnimation(fig=fig, func=Animation, frames=100,
init_func=init, interval=20, blit=False)
plt.show()
plt.show()