国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python編程深度學習計算庫之numpy

2020-01-04 13:40:32
字體:
來源:轉載
供稿:網友

NumPy是python下的計算庫,被非常廣泛地應用,尤其是近來的深度學習的推廣。在這篇文章中,將會介紹使用numpy進行一些最為基礎的計算。

NumPy vs SciPy

NumPy和SciPy都可以進行運算,主要區別如下

Python編程,計算庫,numpy

最近比較熱門的深度學習,比如在神經網絡的算法,多維數組的使用是一個極為重要的場景。如果你熟悉tensorflow中的tensor的概念,你會非常清晰numpy的作用。所以熟悉Numpy可以說是使用python進行深度學習入門的一個基礎知識。

安裝

liumiaocn:tmp liumiao$ pip install numpyCollecting numpy Downloading https://files.pythonhosted.org/packages/b6/5e/4b2c794fb57a42e285d6e0fae0e9163773c5a6a6a7e1794967fc5d2168f2/numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.7MB)  100% |████████████████████████████████| 4.7MB 284kB/s Installing collected packages: numpySuccessfully installed numpy-1.14.5liumiaocn:tmp liumiao$

確認

liumiaocn:tmp liumiao$ pip show numpyName: numpyVersion: 1.14.5Summary: NumPy: array processing for numbers, strings, records, and objects.Home-page: http://www.numpy.orgAuthor: Travis E. Oliphant et al.Author-email: NoneLicense: BSDLocation: /usr/local/lib/python2.7/site-packagesRequires: Required-by: liumiaocn:tmp liumiao$

使用

使用numpy的數組

使用如下例子簡單來理解一下numpy的數組的使用:

liumiaocn:tmp liumiao$ cat np-1.py #!/usr/local/bin/pythonimport numpy as nparr = [1,2,3,4]print("array arr: ", arr)np_arr = np.array(arr)print("numpy array: ", np_arr)print("doulbe calc : ", 2 * np_arr)print("ndim: ", np_arr.ndim)liumiaocn:tmp liumiao$ python np-1.py ('array arr: ', [1, 2, 3, 4])('numpy array: ', array([1, 2, 3, 4]))('doulbe calc : ', array([2, 4, 6, 8]))('ndim: ', 1)liumiaocn:tmp liumiao$

多維數組&ndim/shape

ndim在numpy中指的是數組的維度,如果是2維值則為2,在下面的例子中構造一個步進為2的等差數列,然后將其進行維度的轉換同時輸出數組的ndim和shape的值以輔助對于ndim和shape含義的理解。

liumiaocn:tmp liumiao$ cat np-2.py #!/usr/local/bin/pythonimport numpy as nparithmetic = np.arange(0,16,2)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)#resize to 2*4 2-dim arrayarithmetic.resize(2,4)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)#resize to 2*2*2 3-dim arrayarray = arithmetic.resize(2,2,2)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)liumiaocn:tmp liumiao$ python np-2.py [ 0 2 4 6 8 10 12 14]('ndim: ', 1, ' shape:', (8,))[[ 0 2 4 6] [ 8 10 12 14]]('ndim: ', 2, ' shape:', (2, 4))[[[ 0 2] [ 4 6]] [[ 8 10] [12 14]]]('ndim: ', 3, ' shape:', (2, 2, 2))liumiaocn:tmp liumiao$ 

另外也可以使用reshape進行維度的調整。

等差數列&等比數列

numpy和matlab寫起來有很多函數基本一樣,比如等比數列和等差數列可以使用linspace和logspace進行。

Python編程,計算庫,numpy

logspace缺省的時候指的是以10給底,但是可以通過指定base進行設定

liumiaocn:tmp liumiao$ cat np-3.py #!/usr/local/bin/pythonimport numpy as npprint("np.linspace(1,4,4):", np.linspace(1,4,4))print("np.logspace(1,4,4):", np.logspace(1,4,4))print("np.logspace(1,4,4,base=2):",np.logspace(1,4,4,base=2))liumiaocn:tmp liumiao$ python np-3.py ('np.linspace(1,4,4):', array([1., 2., 3., 4.]))('np.logspace(1,4,4):', array([  10.,  100., 1000., 10000.]))('np.logspace(1,4,4,base=2):', array([ 2., 4., 8., 16.]))liumiaocn:tmp liumiao$

數組初始化

numpy提供了很方便的初始化的函數,比如

Python編程,計算庫,numpy

liumiaocn:tmp liumiao$ cat np-4.py #!/usr/local/bin/pythonimport numpy as npprint("np.zeros(6):",np.zeros(6))print("np.zeros((2,3)):",np.zeros((2,3)))print("np.ones(6):",np.ones(6))print("np.ones((2,3)):",np.ones((2,3)))print("np.random.random(6):",np.random.random(6))print("np.random.random(6):",np.random.random(6))print("np.random.random((2,3)):",np.random.random((2,3)))print("np.random.seed(1234)")np.random.seed(1234)print("np.random.random(6):",np.random.random(6))print("np.random.seed(1234)")np.random.seed(1234)print("np.random.random(6):",np.random.random(6))liumiaocn:tmp liumiao$ python np-4.py ('np.zeros(6):', array([0., 0., 0., 0., 0., 0.]))('np.zeros((2,3)):', array([[0., 0., 0.],    [0., 0., 0.]]))('np.ones(6):', array([1., 1., 1., 1., 1., 1.]))('np.ones((2,3)):', array([[1., 1., 1.],    [1., 1., 1.]]))('np.random.random(6):', array([0.06909968, 0.27468844, 0.59127996, 0.56973602, 0.45985047,    0.95384945]))('np.random.random(6):', array([0.62996648, 0.2824114 , 0.2698051 , 0.09262053, 0.50862503,    0.96600255]))('np.random.random((2,3)):', array([[0.66880129, 0.8834006 , 0.49458989],    [0.28335563, 0.65711274, 0.76726504]]))np.random.seed(1234)('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,    0.27259261]))np.random.seed(1234)('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,    0.27259261]))liumiaocn:tmp liumiao$

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大悟县| 麦盖提县| 眉山市| 门源| 桂林市| 博爱县| 盐边县| 当涂县| 扎囊县| 宁都县| 蓬溪县| 赤城县| 凤山市| 布尔津县| 英超| 明星| 竹山县| 长宁区| 三河市| 疏附县| 佛坪县| 栾川县| 恭城| 花莲市| 门源| 清徐县| 锡林浩特市| 霍邱县| 永宁县| 屏边| 陇南市| 安泽县| 祁东县| 上蔡县| 安丘市| 灵石县| 招远市| 武宣县| 库车县| 临汾市| 博客|