自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

吳思楠機器學習之路:Numpy里多維數(shù)組的創(chuàng)建

開發(fā) 開發(fā)工具 機器學習
Numpy是Python科學計算的核心庫之一,主要提供了對多維數(shù)組的強有力支持。

[[188605]]

Numpy是Python科學計算的核心庫之一,主要提供了對多維數(shù)組的強有力支持。

什么是多維數(shù)組?

核心對象是同型的多維數(shù)組(簡單理解就是一個表格,通常內容都是些數(shù)字),具有相同的數(shù)據(jù)類型。

概念:

1. axes(軸):數(shù)組的維度統(tǒng)稱為軸。

2. rank:軸的數(shù)量稱為rank。

舉例:一維數(shù)組[1,2,1],就是一個rank為1的數(shù)組,因為它只有一個軸(一維)。下圖顯示的是一個rank為2(二維)的數(shù)組。它的***個軸(維)的長度是2,如紅色線框所示;第二個軸(維)的長度是3,如藍色線框所示。這個有點像數(shù)據(jù)結構里說的:數(shù)組的元素本身也可以是數(shù)組類型一樣,***擴展下去。

Numpy里的多維數(shù)組:ndarray

Numpy的數(shù)組類numpy.array一般稱呼為ndarray,這么叫主要是為了和Python的數(shù)組類array.array區(qū)分開來。后面的文章里,如無特殊說明的地方,array和ndarray均是指的numpy.array。

ndarray(numpy.array)的主要屬性:

  • ndim:數(shù)組的軸數(shù)(維度)
  • shape:python的元組類型,其中每個數(shù)字分別表示的是各個軸(維)上數(shù)組的長度
  • size:多維數(shù)組里全部元素的總數(shù)(等于shape元組里所有數(shù)值的乘積)
  • dtype:多維數(shù)組里元素的類型。同一個多維數(shù)組里所有的元素都是同一種類型

這里插播一下:

Anaconda是一個基于Python的Data Science Platform,相當于一個包裝了數(shù)據(jù)分析常用庫和工具的軟件。它是我們開始學習的一個好幫手。下載地址:https://www.continuum.io/anaconda-overview

安裝好后,打開“IPython”,或者“Jupyter QtConsole”,或者“Spyder”都可以。它們本質上都是對IPython這個交互式環(huán)境的包裝。

練習:創(chuàng)建一個ndarray。

直接使用numpy.array()方法,參數(shù)為python的 list or tuple (sequence type)。下面的代碼里,“In”是我們輸入的代碼,“Out”是上一行代碼的輸出。不是每一行代碼都會有輸出哦。

代碼:

下面這張圖是在“Spyder”里執(zhí)行上面代碼的效果圖:

雙擊上圖中的變量查看窗口(Variable explorer)里的ndarray,可以看到一個二維數(shù)組的展示圖:

創(chuàng)建ndarray的一些其它方法

1. zeros,ones和empty方法

  • numpy.zeros
  • numpy.ones
  • numpy.empty

numpy提供了另外一種快速創(chuàng)建ndarray的方法,尤其適合數(shù)組內容未知的情況,同時也避免了數(shù)組增長過程中的開銷

2. arange方法

arange可以返回一個平均分布的ndarray(numpy.array)??梢苑謩e設置開始(可選),結束(必填)和間距(可選)。下面的示例非常清楚的展示了該方法的使用。

3. reshape方法

顧名思義,此方法是將一個已經(jīng)存在了的ndarray,轉換為另外一個shape(形狀,即數(shù)組各個軸上的長度)的多維數(shù)組。新數(shù)組包含了原來所有的數(shù)據(jù)。

注意:新的形狀必需保持size相同,直白一點,就是***個shape的參數(shù),3x4=12,需要和第二個shape的參數(shù)2x6=12,始終保持一致。

4. random方法

用隨機數(shù)填充新數(shù)組的內容。numpy里有多個產生數(shù)據(jù)數(shù)組的方法,容易搞暈。產生隨機數(shù)目前我見到兩大類,一類是按照“均勻分布”(例如概率論里的“0-1連續(xù)分布”)產生,另一類是按照“正態(tài)分布”產生的。

在numpy里,我們會見到random,ranf,sample這幾個方法,其實它們全部都是:

numpy.random.random_sample這個方法的別名,都是基于“均勻分布”產生隨機數(shù)。下面的代碼驗證了這一點:

詳細介紹下用的最多一個:

numpy.random.random

API:http://t.im/1b9sw

它隨機返回半開區(qū)間[0.0, 1.0)的浮點數(shù),方法參數(shù)只有一個:

size : int或者int型元組,同時也作為返回數(shù)組的shape。如果輸入的是(2,3,5),則首先抽取2x3x5=30個隨機數(shù),然后形成一個形狀為(2,3,5)的多維數(shù)組作為返回值。如果沒有提供參數(shù),則直接返回一個隨機數(shù)。

練習:生成[12, 30)區(qū)間的一個6x3的數(shù)組

代碼:

好了,關于numpy第1講就到這里,還有很多內容待后面用到的時候又再介紹。

【本文為51CTO專欄作者“吳思楠”的原創(chuàng)稿件,轉載請通過51CTO聯(lián)系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-05-24 16:01:35

人工智能AI機器學習

2011-05-28 08:57:54

BlueCoat羅楠思

2010-07-21 13:53:07

Perl引用

2022-02-18 17:34:47

數(shù)組多維五維數(shù)組

2017-04-14 14:57:03

機器學習學習資源

2023-06-01 16:41:39

NumPyPython

2021-12-17 08:27:55

NumpyPython 機器學習

2022-06-06 12:53:17

吳恩達AI機器學習

2018-05-11 14:34:24

人工智能機器學習深度學習

2011-06-08 15:21:18

多維數(shù)組

2011-06-08 14:42:33

C++多維數(shù)組

2022-06-02 15:42:05

Python機器學習

2009-09-16 09:01:40

C#多維數(shù)組

2021-04-13 09:25:21

機器學習人工智能計算機

2009-09-17 16:36:59

C#一維數(shù)組C#多維數(shù)組

2011-07-04 11:05:03

數(shù)組java

2009-01-16 21:54:41

服務器虛擬化VMware

2017-02-08 15:59:11

人工智能機器

2018-12-17 09:10:52

機器學習TensorFlow容器

2010-03-15 13:17:00

Python多維數(shù)組
點贊
收藏

51CTO技術棧公眾號