天天看點

Python 科學工具筆記Python 科學工具筆記

Python 科學工具筆記

numpy

  • a = numpy.array([1,2,3,4]);// 建立一個numpy的數組對象

    此時a.shape顯示的值為(4,);

    由此得出結論在一維的數組中, 數組的是列優先的

  • numpy.random.uniform(low, high):

    産生在low和high之間的随機數

  • numpy.vdot(arrA, arrB):

    計算arrA與arrB的數量積

  • numpy.max(), .min(), .sum(), .average()
  • numpy.random.randn():

Scipy

  • scipy.integrate.quad(funcname, low, high): funcname函數的僅僅傳回一個需要求解積分的式子

    low: 積分下線

    high: 積分上限

matplotlib.pyplot

import matplotlib.pyplot as plt
 plt.hist()
 plt.plot()
 plt.pie()
 plt.bar()
 plt.show()
 plt.scatter()
 
            

numpy庫使用

  • genfromtxt(filename, delimiter, dtype, skip_header=1/2)

filename: 檔案名

delimiter: 分隔符, 用于分隔檔案中每行的内容放入到矩陣中

dtype: 矩陣中的類型, ATTENTION: numpy矩陣中的所有元素是同一個類型

skip_header: 是否跳過首行

  • numpy.array(list): 根據list傳回一個numpy的矩陣
  • obj.shape: 傳回次元資訊
  • obj.dtype: 傳回numpy的dtype類型對象, 顯示矩陣中的元素類型
  • [2], [2:3]: 對以為矩陣, 擷取指定的元素

對于二維矩陣元素的擷取:

[2:3, 3:4]: 逗号左側表示對行的切片, 逗号右邊表示對列的切片

  • 對numpy中的矩陣進行操作符的操作(<. ==, >)等指的是對矩陣中每一個元素進行該操作, bool類型的操作傳回的是bool序列
  • 矩陣中的切片可是一個bool類型的序列, [bool_list], 傳回對應的為True的元素組成的序列
  • obj.astype(dtype): 改變元素的類型
  • obj.min(),.max(), sum(),其中可以添加預設參數, axis=1|0, 如果為0表示按照列為機關計算min, max等, 傳回每一行的min, max等, 如果為axis=1則是以行為機關
  • numpy.isnan(array): 傳回bool序列, 判斷元素的空項
  • obj.arange(0, 100, 2)
  • obj.linspace(0, 100, 100)
  • obj.ndim: 傳回矩陣的次元
  • obj.size: 元素個數
  • obj.zeros(tuple)
  • obj.ones(tuple)
  • numpy.random.random((2, 3)): 生成2行3列的元素為随機數的矩陣
  • obj0.dot(obj1)或者numpy.dot(obj0, obj1): 矩陣乘法, obj0的列向量與obj1的行向量的數量積
  • numpy.exp(array), numpy.sin(array), numpy.sqrt(array), numpy.floor(array)
  • obj.ravel(): 解開矩陣, 将矩陣拉成以為向量
  • numpy.vstack(obj0, obj1): 将obj0與obj1垂直拼接
  • numpy.hstack(obj0, obj1): 将obj0與obj1水準拼接
  • numpy.vsplit(obj, 3): 将obj垂直切兩刀平均分為3個矩陣
  • numpy.hsplit(obj, 3): 同理
  • numpy.vsplit(obj, (2, 3)): 以2行3列的元素所在的列為分隔線分隔為3份
  • numpy.hsplit(obj, (2, 3)): 同理
  • numpy.reshape(2, 3): 調整矩陣的行和列
  • obj.view(): 淺拷貝, 不建議使用
  • obj.copy(): 深拷貝
  • obj.tile(2, 3): 也為拷貝, 但是拷貝出來的矩陣的行是原來的2倍, 列是原來的3倍
  • obj.sort(axis=1|0): 按照行或者列進行判斷

pandas庫使用(pandas是對numpy的封裝, 随意可以混合使用)

  • pandas.read_csv(filename): 讀取檔案傳回DataFrame對象(df), 隻要資料是以逗号分隔的都可使用read_csv讀取
  • df.dtypes傳回類型
  • df.head(3): 檢視前3行
  • df.tail(3): 檢視後3行
  • df.columns: 列名
  • df.shape: 次元資訊, 表格的行和列資訊
  • df.loc[index]: 傳回指定行的資訊
  • df['string']: 傳回指定的名稱的列資訊, 傳回Series, DataFrame就是有很多個Series中組成的
  • 在pandas中的python内置的str類型為object類型(dtype中顯示的)
  • obj.dropna(): 去掉有空項的行
  • Series對象

series.index傳回index序列

series.sortindex排序index

series.sortvalues排序values

series[0]|series['str']: 傳回索引對應的value

matplotlib.pyplot庫使用

  • 畫出折線圖

import matplotlib.pyplot as plt

x_values = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

y_values = [100, 200, 300, 120, 12, 213, 123]

x_label = 'Days'

y_label = 'Rain flow'

line_color = 'red'

legend_string = 'Trend'

plt.plot(x_label, y_label, c=line_color, label=legend_string) # plot函數作用: 畫出圖或者線(指的僅僅是折線, 柱形圖的, 并不包含坐标的繪畫)

plot函數參數介紹:

1: x軸資料序列

2: y軸資料序列

3: c: 折線的顔色

4: label: 折線對應的名稱

plt.xlabel(x_label)

plt.ylabel(y_label)

plt.title('Demo')

plt.ledend(loc='best') # 顯示折線對應的label, 就是圖例

plt.xticks(rotation=45) # 設定x軸顯示的資料的傾斜度為45, 便于顯示标簽

plt.show() # 顯示圖形

上一篇: LinuxOSLinux
下一篇: pyenv