日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python数据建模python_Python 数据建模总结和实战(共两万字)

發布時間:2023/12/31 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据建模python_Python 数据建模总结和实战(共两万字) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:對于初學者來說,Python 是一個不錯的語言,Python 語言簡單易懂,而且有著豐富的數據庫以及活躍的社區,對于大數據分析有很明顯的幫助。學 Python 數據分析的,好好看我長篇文章。

Numpy

NumPy 軟件包是 Python 生態系統中數據分析、機器學習和科學計算的主力軍。它極大地簡化了向量和矩陣的操作處理。Python 的一些主要軟件包(如 scikit-learn、scipy、pandas 和 tensorflow)都以 NumPy 作為其架構的基礎部分。除了能對數值數據進行切片(slice)和切塊(dice)之外,使用 NumPy 還能為處理和調試上述庫中的高級實例帶來極大便利。

本節將介紹使用 NumPy 的一些主要常見方法,示例講解如下。

創建、修改 array、shape 與 reshape 函數

>>> # 導入 numpy

>>> import numpy as np

>>> a = np.array([1, 2, 3])

>>> b = np.array([[1, 2, 3], [4, 5, 6]])

>>> a.dtype

int32

>>> b.shape

(2 3)

>>> 將 b 的第一行第一列的 5 改為 10

>>> b[1,1]=10

>>> b

array([[ 1, 2, 3],

[ 4, 10, 6]])

>>> b.reshape(3,2)

array([[ 1, 2],

[ 3, 4],

[10, 6]])

函數 shape 屬性獲得數組的大小,通過 dtype 獲得元素的屬性。如果你想對數組里的數值進行修改的話,直接賦值即可,注意下標是從 0 開始計的。

數組切片和選取

Numpy 的切片和 Python 列表完全一樣。一個完整的切片表達式包含兩個“:”,用于分隔三個參數(start_index、end_index、step),當只有一個“:”時,默認第三個參數 step=1。

如下圖所示,以 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 為例:

>>> a = np.arange(10)

>>> a

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> a * 10

array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])

>>> a[2:8:2]

array([2, 4, 6])

>>> a[3:5] = a[3:5] *10

>>> a

array([ 0, 1, 2, 30, 40, 5, 6, 7, 8, 9])

>>> import numpy as np

>>> # 二維

>>> b = np.array([[1,2,3],[4,5,6]])

>>> b

array([[1, 2, 3],

[4, 5, 6]])

>>> b[:,1]

array([2, 5])

>>> b[:,0:2]

array([[1, 2],

[4, 5]])

數組的布爾值運用

布爾值也是 Python 中的一種數據類型,專門用來用于些邏輯判斷。常用的布爾值分別有:~ 反、& 并、| 或 。

現在我們新建一個數組 a,現在取出其中元素值大于 3 且小于 6 的所有元素,并改為 0,其他為 1:

>>> a = np.arange(0,10,1)

>>> a

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> np.sum(a>5)

4

>>> np.sum(~(a>5))

6

>>> a[(a>3)&(a<6)] = 0

>>> a[~(a>3)&(a<6)] = 1

>>> a

array([1, 1, 1, 1, 1, 1, 6, 7, 8, 9])

axis 的應用

如下圖所示,axis 實際上就是表示軸。對于一個二維空間,axis=1 代表橫軸,axis=0 按照豎軸。

>>> a = np.array([[1,4],[3,2]])

>>> b = np.array([[5,6],[7,8]])

>>> concatenate 的將兩個 Array 聚合起來

>>> np.concatenate((a,b),axis=0)

array([[1, 4],

[3, 2],

[5, 6],

[7, 8]])

>>> np.concatenate((a,b),axis=1)

array([[1, 4, 5, 6],

[3, 2, 7, 8]])

>>> 如果排序的時候,沒有指定 axis,默認 axis=1

>>> np.sort(a)

array([[1, 4],

[2, 3]])

>>> np.sort(a, axis=0)

array([[1, 2],

[3, 4]])

>>> 如果需要運算,需要指定對應的 axis

>>> a.sum()

10

>>> a.sum(axis=0)

array([4, 6])

>>> a.sum(axis=1)

array([5, 5])

>>> 通過 ndim 查看 array 的維度

>>> a.ndim

2

數列的創建和算術運算

等比數列:logspace 中,開始點和結束點是 10 的冪,0 代表 10 的 0 次方,9 代表 10 的 9 次方。生成從 10 的 a 次方到 10 的 b 次方之間按對數等分的 n 個元素的行向量。

等差數列:linspace 是 linear space 的縮寫,代表線性等分向量的含義。linspace() 通過指定 初始值、終值、元素個數 來創建等差數列的一維數組。注意:這個區間的端點可以任意的被排除在外。

通過 NumPy 可以自由地創建等差數組,同時也可以進行加、減、乘、除、求 n 次方和取余數。同時也可以進行加、減、乘、除、求 n 次方和取余數。

>>> # 在 100 和 1000 中生成 num=4 的等比序列

>>> np.logspace(2.0, 3.0, num=4)

array([ 100. , 215.443469 , 464.15888336, 1000. ])

>>> # endpoint=Falseb 表示 1000 不能在序列中

>>> np.logspace(2.0, 3.0, num=4, endpoint=False)

array([100. , 177.827941 , 316.22776602, 562.34132519])

>>> # base=2.0 表示不再以 10 的冪,而是以 2 作為冪

>>> np.logspace(2.0, 3.0, num=4, base=2.0)

array([4. , 5.0396842 , 6.34960421, 8. ])

>>> a = np.linspace(1,10,5)

>>> b = np.linspace(10,1,5)

>>> a

array([ 1. , 3.25, 5.5 , 7.75, 10. ])

>>> b

array([10. , 7.75, 5.5 , 3.25, 1. ])

>>> np.add(a, b) #加法

array([11., 11., 11., 11., 11.])

>>> np.subtract(a, b) #減法

array([-9. , -4.5, 0. , 4.5, 9. ])

>>> np.multiply(a, b) #乘法

array([10. , 25.1875, 30.25 , 25.1875, 10. ])

>>> np.divide(a, b) #除法

array([ 0.1 , 0.41935484, 1. , 2.38461538, 10. ])

>>> np.power(a,b) #乘方

array([1.00000000e+00, 9.27034822e+03, 1.18030648e+04, 7.76659275e+02,

1.00000000e+01])

>>> np.remainder(a, b) #取余數

array([1. , 3.25, 0. , 1.25, 0. ])

重要 random 的函數

rand:根據給定維度生成 [0,1) 之間的數據,包含 0,不包含 1

randn:返回均值=0,標準差=1,具有標準正態分布

normal:normal 是正態分布,但可以修改均值和標準差,第一個是均值,第二個是標準差,還可以傳入 size

randint:返回隨機整數,范圍區間為[low,high),包含 low,不包含 high

choice:從給定的區間生成相對應個隨機數

>>> np.random.rand(3,4)

array([[0.00910588, 0.26719767, 0.96195156, 0.66325403],

[0.77108254, 0.73961889, 0.4332318 , 0.6130871 ],

[0.24454375, 0.96344155, 0.91942036, 0.16383334]])

>>>np.random.randn(3,4)

array([[0.31124855, 0.3970361 , 0.86046835, 0.36587692],

[0.94543601, 0.84770308, 0.13784751, 0.69106204],

[0.80672147, 0.78469807, 0.12474456, 0.38386812]])

>>> np.random.normal(5,1,size=(3, 4))

array([[5.05484712, 5.11948961, 4.74160469, 5.73573086],

[4.93939144, 6.52482878, 3.83668001, 6.62767368],

[4.74056406, 4.00017621, 6.32218076, 5.48900825]])

>>> np.random.randint(1, 10, 10)

array([3, 2, 6, 5, 7, 6, 6, 5, 1, 3])

>>> # 從給定的 0 到 3 中生成 3 個隨機數

>>> np.random.choice(3,3)

array([2, 0, 2])

如果想每次都固定隨機數,需要設置 seed 隨機種子:

總結

以上是生活随笔為你收集整理的python数据建模python_Python 数据建模总结和实战(共两万字)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。