import numpy as np #通常以np做爲numpy的別名
a = np.array([2, 0, 1, 5]) #建立數組 print(a) #輸出數組 print(a[:3]) #引用前三個數字(切片) print(a.min()) #輸出a的最小值 a.sort() #將a的元素從小到大排序,此操做直接修改a,所以這時候a爲[0, 1, 2, 5] b= np.array([[1, 2, 3], [4, 5, 6]]) #建立二維數組 print(b*b) #輸出數組的平方陣,即[[1, 4, 9], [16, 25, 36]]
[2 0 1 5] [2 0 1] 0 [[ 1 4 9] [16 25 36]]
from scipy.optimize import fsolve #導入求解方程組的函數 from scipy import integrate #導入積分函數 def f(x): #定義要求解的方程組 x1 = x[0] x2 = x[1] return [2*x1 - x2**2 - 1, x1**2 - x2 -2] result = fsolve(f, [1,1]) #輸入初值[1, 1]並求解 print(result) #輸出結果,爲array([ 1.91963957, 1.68501606]) #數值積分 def g(x): #定義被積函數 return (1-x**2)**0.5 pi_2, err = integrate.quad(g, -1, 1) #積分結果和偏差 print(pi_2 * 2) #由微積分知識知道積分結果爲圓周率pi的一半
[ 1.91963957 1.68501606] 3.141592653589797
import numpy as np import matplotlib.pyplot as plt #導入Matplotlib x = np.linspace(0, 10, 1000) #做圖的變量自變量 y = np.sin(x) + 1 #因變量y z = np.cos(x**2) + 1 #因變量z plt.figure(figsize = (8, 4)) #設置圖像大小 plt.plot(x,y,label = '$\sin x+1$', color = 'red', linewidth = 2) #做圖,設置標籤、線條顏色、線條大小 plt.plot(x, z, 'b--', label = '$\cos x^2+1$') #做圖,設置標籤、線條類型 plt.xlabel('Time(s) ') # x軸名稱 plt.ylabel('Volt') # y軸名稱 plt.title('A Simple Example') #標題 plt.ylim(0, 2.2) #顯示的y軸範圍 plt.legend() #顯示圖例 plt.show() #顯示做圖結果
Pandas基本數據結構是Series和DataFramehtml
s = pd.Series([1,2,3], index=['a', 'b', 'c']) #建立一個序列s d = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns = ['a', 'b', 'c']) #建立一個表 d2 = pd.DataFrame(s) #也能夠用已有的序列來建立表格
#讀取文件,注意文件的存儲路徑不能帶有中文,不然讀取可能出錯。 pd.read_excel('data.xls') #讀取Excel文件,建立DataFrame。 pd.read_csv('data.csv', encoding = 'utf-8') #讀取文本格式的數據,通常用encoding指定編碼。 #d.head() #預覽前5行數據 d.describe() #數據基本統計量
構建一個MLP(多層感知器), 沒法運行,須要適配相應的數據算法
from keras.models import Sequential from keras.layers.core import Dense,Dropout,Activation from keras.optimizers import SGD model=Sequential() #模型初始化 model.add(Dense(64,input_dim=20)) #添加輸入層(20節點)、第一隱藏層(64節點)的鏈接 model.add(Activation('tanh')) #第一隱藏層用tanh做爲激活函數 model.add(Dropout(0.5)) #使用Dropout防止過擬合 model.add(Dense(64,input_dim=64, init='uniform')) #添加第一隱藏層(64節點)、第二隱藏層(64節點)的鏈接 model.add(Activation('tanh')) #第二隱藏層用tanh做爲激活函數 model.add(Dropout(0.5)) model.add(Dense(1,input_dim=64)) #添加第二隱藏層(64節點)、輸出層(1節點)的鏈接 model.add(Activation('sigmoid')) #輸出層用sigmoid做爲激活函數 sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) #定義求解算法 model.compile(loss='mean_squared_error', optimizer=sgd) #編譯生成模型,損失函數爲mean_squared_error model.fit(X_train, y_train, nb_epoch=20, batch_size=16) #訓練模型 score=model.evaluate(X_test,y_test,batch_size=16) #測試模型