日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python NumPy庫安裝使用筆記

系統 1693 0

1. NumPy安裝
使用pip包管理工具進行安裝

復制代碼 代碼如下:

$ sudo pip install numpy

使用pip包管理工具安裝ipython(交互式shell工具)
復制代碼 代碼如下:

$ sudo pip instlal ipython
$ ipython --pylab? #pylab模式下, 會自動導入SciPy, NumPy, Matplotlib模塊

2. NumPy基礎

2.1. NumPy數組對象

具體解釋可以看每一行代碼后的解釋和輸出

復制代碼 代碼如下:

In [1]: a = arange(5)? # 創建數據
In [2]: a.dtype
Out[2]: dtype('int64')? # 創建數組的數據類型
In [3]: a.shape? # 數組的維度, 輸出為tuple
Out[3]: (5,)
In [6]: m = array([[1, 2], [3, 4]])? # array將list轉換為NumPy數組對象
In [7]: m? # 創建多維數組
Out[7]:
array([[1, 2],
?????? [3, 4]])
In [10]: m.shape? # 維度為2 * 2
Out[10]: (2, 2)
In [14]: m[0, 0]? # 訪問多維數組中特定位置的元素, 下標從0開始
Out[14]: 1
In [15]: m[0, 1]
Out[15]: 2

2.2. 數組的索引和切片

復制代碼 代碼如下:

In [16]: a[2: 4]? # 切片操作類似與Python中list的切片操作
Out[16]: array([2, 3])
In [18]: a[2 : 5: 2]? # 切片步長為2
Out[18]: array([2, 4])
In [19]: a[ : : -1]? # 翻轉數組
Out[19]: array([4, 3, 2, 1, 0])
In [20]: b = arange(24).reshape(2, 3, 4)? # 修改數組的維度
In [21]: b.shape
Out[21]: (2, 3, 4)
In [22]: b? # 打印數組
Out[22]:
array([[[ 0,? 1,? 2,? 3],
??????? [ 4,? 5,? 6,? 7],
??????? [ 8,? 9, 10, 11]],
?????? [[12, 13, 14, 15],
??????? [16, 17, 18, 19],
??????? [20, 21, 22, 23]]])
In [23]: b[1, 2, 3]? # 選取特定元素
Out[23]: 23
In [24]: b[ : , 0, 0]? # 忽略某個下標可以用冒號代替
Out[24]: array([ 0, 12])
In [23]: b[1, 2, 3]
Out[23]: 23
In [24]: b[ : , 0, 0]? # 忽略多個下標可以使用省略號代替
Out[24]: array([ 0, 12])
In [26]: b.ravel()? # 數組的展平操作
Out[26]:
array([ 0,? 1,? 2,? 3,? 4,? 5,? 6,? 7,? 8,? 9, 10, 11, 12, 13, 14, 15, 16,
?????? 17, 18, 19, 20, 21, 22, 23])
In [27]: b.flatten()? # 與revel功能相同, 這個函數會請求分配內存來保存結果
Out[27]:
array([ 0,? 1,? 2,? 3,? 4,? 5,? 6,? 7,? 8,? 9, 10, 11, 12, 13, 14, 15, 16,
?????? 17, 18, 19, 20, 21, 22, 23])
In [30]: b.shape = (6, 4)? # 可以直接對shape屬性賦值元組來設置維度
In [31]: b
Out[31]:
array([[ 0,? 1,? 2,? 3],
?????? [ 4,? 5,? 6,? 7],
?????? [ 8,? 9, 10, 11],
?????? [12, 13, 14, 15],
?????? [16, 17, 18, 19],
?????? [20, 21, 22, 23]])
In [30]: b.shape = (6, 4)? # 矩陣的轉置
In [31]: b
Out[31]:
array([[ 0,? 1,? 2,? 3],
?????? [ 4,? 5,? 6,? 7],
?????? [ 8,? 9, 10, 11],
?????? [12, 13, 14, 15],
?????? [16, 17, 18, 19],
?????? [20, 21, 22, 23]])

2.3. 組合數組

復制代碼 代碼如下:

In [1]: a = arange(9).reshape(3, 3)? # 生成數組對象并改變維度
In [2]: a
Out[2]:
array([[0, 1, 2],
?????? [3, 4, 5],
?????? [6, 7, 8]])
In [3]: b = a * 2? # 對a數組對象所有元素乘2
In [4]: b
Out[4]:
array([[ 0,? 2,? 4],
?????? [ 6,? 8, 10],
?????? [12, 14, 16]])
#######################
In [5]: hstack((a, b))? # 水平組合數組a和數組b
Out[5]:
array([[ 0,? 1,? 2,? 0,? 2,? 4],
?????? [ 3,? 4,? 5,? 6,? 8, 10],
?????? [ 6,? 7,? 8, 12, 14, 16]])
??????
In [6]: vstack((a, b))? # 垂直組合數組a和數組b
Out[6]:
array([[ 0,? 1,? 2],
?????? [ 3,? 4,? 5],
?????? [ 6,? 7,? 8],
?????? [ 0,? 2,? 4],
?????? [ 6,? 8, 10],
?????? [12, 14, 16]])
In [7]: dstack((a, b))? # 深度組合數組, 沿z軸方向層疊組合數組
Out[7]:
array([[[ 0,? 0],
??????? [ 1,? 2],
??????? [ 2,? 4]],
?????? [[ 3,? 6],
??????? [ 4,? 8],
??????? [ 5, 10]],
?????? [[ 6, 12],
??????? [ 7, 14],
??????? [ 8, 16]]])

2.4. 分割數組

復制代碼 代碼如下:

In [8]: a
Out[8]:
array([[0, 1, 2],
?????? [3, 4, 5],
?????? [6, 7, 8]])
In [9]: hsplit(a, 3)? # 將數組沿水平方向分割成三個相同大小的子數組
Out[9]:
[array([[0],
??????? [3],
??????? [6]]),
?array([[1],
??????? [4],
??????? [7]]),
?array([[2],
??????? [5],
??????? [8]])]
In [10]: vsplit(a, 3)? # 將數組沿垂直方向分割成三個子數組
Out[10]: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

2.5. 數組的屬性

復制代碼 代碼如下:

In [12]: a.ndim? # 給出數組的尾數或數組的軸數
Out[12]: 2
In [13]: a.size? # 數組中元素的個數
Out[13]: 9
In [14]: a.itemsize? # 數組中元素在內存中所占字節數(int64)
Out[14]: 8
In [15]: a.nbytes? # 數組所占總字節數, size * itemsize
Out[15]: 72
In [18]: a.T? # 和transpose函數一樣, 求數組的轉置
Out[18]:
array([[0, 3, 6],
?????? [1, 4, 7],
?????? [2, 5, 8]])

2.6. 數組的轉換

復制代碼 代碼如下:

In [19]: a.tolist()? # 將NumPy數組轉換成python中的list
Out[19]: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

3. 常用函數

復制代碼 代碼如下:

In [22]: c = eye(2)? # 構建2維單位矩陣
In [23]: c
Out[23]:
array([[ 1.,? 0.],
?????? [ 0.,? 1.]])
In [25]: savetxt("eye.txt", c)? # 將矩陣保存到文件中
In [5]: c, v = loadtxt("test.csv", delimiter=",", usecols=(0, 1), unpack=True)? # 分隔符為, usecols為元組表示要獲取的字段數據(每一行的第零段和第一段), unpack為True表示拆分存儲不同列的數據, 分別存入c, v
In [12]: c
Out[12]: array([ 1.,? 4.,? 7.])
In [13]: mean(c)? # 計算矩陣c的mean均值
Out[13]: 4.0
In [14]: np.max(c)? # 求數組中的最大值
Out[14]: 7.0
In [15]: np.min(c)? # 求數組中的最小值
Out[15]: 1.0
In [16]: np.ptp(c)? # 返回數組最大值和最小值之間的差值
Out[16]: 6.0
In [18]: numpy.median(c)? # 找到數組中的中位數(中間兩個數的平均值)
Out[18]: 4.0
In [19]: numpy.var(c)? # 計算數組的方差
Out[19]: 6.0
In [20]: numpy.diff(c)? # 返回相鄰數組元素的差值構成的數組
Out[20]: array([ 3.,? 3.])
In [21]: numpy.std(c)? # 計算數組的標準差
Out[21]: 2.4494897427831779
In [22]: numpy.where(c > 3)? # 返回滿足條件的數組元素的下標組成的數組
Out[22]: (array([1, 2]),)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大化| 旅游| 福建省| 砀山县| 许昌县| 永新县| 黄平县| 南平市| 大同市| 双柏县| 南川市| 肃宁县| 阿荣旗| 正阳县| 新竹县| 全州县| 凤山县| 桐乡市| 子洲县| 江门市| 合阳县| 济南市| 曲周县| 凌源市| 抚顺市| 高雄市| 蓬安县| 丰原市| 阜新市| 象山县| 南投县| 丰原市| 密山市| 昭平县| 类乌齐县| 观塘区| 临朐县| 云梦县| 化州市| 高淳县| 克山县|