numpy入門到放棄



datacamp:numpy知識點



3.look though 這個np.array




4.? 隨機創建data


i



目錄


1-7. 入門

8.? ? 創建數組

9.? ? np.reshape()

10.? ?將多維數組轉為一維數組

11.? 算術運算

12.?numpy 中數組和矩陣的區別



numpy入門

1. numpy的主要操作對象是同類型的多維數組。

它是一個由正整數元組索引,元素類型相同的表(通常元素是數字)。在 numpy維度被稱為?axes,?axes?的數量稱為?rank。

2. numpy的數組類是ndarray,也可以叫array


3.ndarray.ndim

數組的?axes?(維數)數值大小。

4.ndarray.shape

數組的維數,這是由每個維度的大小組成的一個元組。對于一個 n行 m 列的矩陣。shape?是?(n, m)。由?shape?元組的長度得出?rank?或者維數?ndim。

5.ndarray.size

數組元素的個數總和,這等于?shape?元組數字的乘積。

6.ndarray.dtype

在數組中描述元素類型的一個對象.它是一種可以用標準的python類型創建和指定的類型。eg:numpy.int32,numpy.int16,numpy.float64……

7.ndarray.itemsize

數組中每個元素所占字節數。

NumPy 官方快速入門教程(譯) - 掘金


8.創建數組


8.1 用array創建一維數組

創建的數組類型是從原始序列中的元素推斷出來的。


8.2 用array創建高維數組


數組類型是從原始序列中的元素推斷出來的


數組的類型也能夠在創建時具體指定

8.3 用占位符創建

8.3.1 np.zeros()

創建一個全是0的數組


Q:3維要怎么理解?2個面? 3維矩陣?

ps: np.zeros_like()生成相同形狀的全0數組




8.3.2?np.ones

創建全是1的數組


8.3.3 np.empty()

empty?創建一個隨機的數組。默認創建數組的類型是?float64



8.4 用arrange創建數組

np.arrange() 來表示取值范圍


8.5 用np.linspace 來創建數組 等差數列

當?arange?的參數是浮點型的,由于有限的浮點精度,通常不太可能去預測獲得元素的數量。出于這個原因,通常選擇更好的函數?linspace,他接收我們想要的元素數量而不是步長作為參數。

類似arange,linspace從[start , stop ] 生成num個數,Num個數間隔相等。(默認為float)

linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)


8.6?np.random.rand()隨機生成取值在(0,1)的數組


0~1的隨機數


8.7 np.random.randit() 產生隨機整數

numpy.random.randint(low, high=None, size=None, dtype='l')


8.8?np.random.choice ()

# 參數意思分別 是從a 中以概率P,隨機選擇3個, p沒有指定的時候相當于是一致的分布

a1 = np.random.choice(a=5, size=3, replace=False, p=None)

print(a1)

# 非一致的分布,會以多少的概率提出來

a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])

print(a2)

# replacement 代表的意思是抽樣之后還放不放回去,如果是False的話,那么出來的三個數都不一樣,如果是True的話, 有可能會出現重復的,因為前面的抽的放回去了。

https://blog.csdn.net/qfpkzheng/article/details/79061601

8.9?numpy.random.sample

返回一個隨機數組,取值在(0,1)之間

numpy.random.sample(size=None)

參數:

size:?int or tuple of ints, optional 可以是整數或者元組

Output shape. If the given shape is, e.g.,?(m,?n,?k), then?m?*?n?*?k?samples are drawn

如果size輸入的是元組形式,返回的是多維數組

numpy.random.sample — NumPy v1.16 Manual

8.10??numpy.random.randn()

numpy.random.randn(d0,d1,…,dn)

randn函數返回一個或一組樣本,具有標準正態分布

dn表格每個維度

返回值為指定維度的array


ps:標準正態分布又稱為u分布,是以0為均值、以1為標準差的正態分布,記為N(0,1)

https://blog.csdn.net/u012149181/article/details/78913167

8.11 np.logspace()

創建等比數列

8.12 np.fromstring()


9. 修改數組的形狀

9.1 np.reshape()?

將一維的數據轉為多維的


2個3行4列的數組

9.2 數組的轉置transposed


9.3 np.resize()

reshape函數返回修改的形狀,而 resize方法直接修改數組本身。



10.將多維數組轉為一維數組np.ravel()? ? ?np.flatten()? ? ? ?np.squeeze()

numpy中的ravel()、flatten()、squeeze()都有將多維數組轉換為一維數組的功能,區別:

ravel():如果沒有必要,不會產生源數據的副本

flatten():返回源數據的副本

squeeze():只能對維數為1的維度降維

另外,reshape(-1)也可以“拉平”多維數組


11.numpy中的算數計算

11.1 四則運算

+’,’-‘,’*’,’/’運算都是基于全部的數組元素的


11.1.1 * vs np.dot() vs np.multiply()? 不同 見13

https://blog.csdn.net/zenghaitao0128/article/details/78715140


11.2?開根號/指數??universal functions??

還包含 sin cos?



11.3 += 和 *=

直接在原數組上做修改,不會創建新數組。


11.4 聚合運算

還有mean() median()


ps:?numpy.ptp(a, axis=None, out=None)? ?返回最大和最小值之差


11.5 二元ufunc

11.6 數組的集合運算


《利用python進行數據分析》


11.7 numpy.linalg() 常用計算函數




12. numpy 中數組和矩陣的區別

1. Numpy matrices必須是2維的,但是 numpy arrays (ndarrays) 可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含于Array。所以matrix 擁有array的所有特性。

2. 在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那么a*b,就是矩陣積。

3. matrix 和 array 都可以通過objects后面加.T 得到其轉置。但是 matrix objects 還可以在后面加 .H f得到共軛矩陣, 加 .I 得到逆矩陣。

4. 相反的是在numpy里面arrays遵從逐個元素的運算,所以array:c 和d的c*d運算相當于matlab里面的c.*d運算。而矩陣相乘,則需要numpy里面的dot命令 。

https://blog.csdn.net/wyl1813240346/article/details/79806207


13.?* vs np.dot() vs np.multiply()? 區別

數組的?*?操作不像其他的矩陣語言。矩陣乘法通過?dot?函數進行模擬

13.1 np.multiply()用法

數組和矩陣對應位置相乘,輸出與相乘數組/矩陣的大小一致


13.1.1 數組


13.1.2 矩陣


13.2 np.dot() 用法

對于秩為1的數組,執行對應位置相乘,然后再相加;

對于秩不為1的二維數組,執行矩陣乘法運算;超過二維的可以參考numpy庫介紹。


13.2.1 一維數組

13.2.2 二維數組


13.3 * 的用法

對數組執行對應位置相乘

對矩陣執行矩陣乘法運算


13.3.1 數組 *

13.3.2 矩陣


14.?索引,切片和迭代

14.1 一維數組

一維數組可以被索引,切片和迭代,就像列表和其他Python序列一樣。




14.2 二維數組



14.3 多維數組 三維數組 用... 查詢數組



15. 數組的組合拼接

使用hstack 橫向拼接

使用vstack 縱向拼接



16.數組的拷貝

不同的數組對象可以分享相同的數據。view?方法創建了一個相同數據的新數組對象。 淺拷貝

想要真正的復制一份a給b,可以使用copy.? 深拷貝



17.numpy中的函數



18. numpy中的矩陣

矩陣與數組有不同,矩陣最多是2維的


18.1 矩陣的創建

18.2 矩陣的乘法

np.multiply()

(*)


18.3 矩陣的轉置 .T()

18.4 矩陣求逆nlg.inv()


18.5 特征向量

ps:忘記特征向量怎么求了?

先占著坑

pass


19. np.meshgrid()用法

meshgrid(*xi, **kwargs)

功能:從一個坐標向量中返回一個坐標矩陣


20.np.cumsum()

numpy.cumsum(a, axis=None, dtype=None, out=None)

axis=0,按照行累加。

axis=1,按照列累加。

axis不給定具體值,就把numpy數組當成一個一維數組。


自動轉換成一維數組,按照行累加

21.np.where()用法

21.1 np.where(condition, x, y)

滿足條件(condition),輸出x,不滿足輸出y。



21.2?np.where(condition)

只有條件 (condition),沒有x和y,則輸出滿足條件 (即非0) 元素的坐標 (等價于numpy.nonzero)。這里的坐標以tuple的形式給出,通常原數組有多少維,輸出的tuple中就包含幾個數組,分別對應符合條件元素的各維坐標。


21.3 利用where 修改數組的值


22.利用set去重?




23.?np.concatenate

numpy.concatenate((a1,?a2,?...),?axis=0,?out=None)




24. np.meshgrid()

meshgrid(*xi, **kwargs)

從一個坐標向量中返回一個坐標矩陣

參數:

x1,x2...,xn:數組,一維的數組代表網格的坐標。

indexing:{'xy','ij'},笛卡爾坐標'xy'或矩陣'ij'下標作為輸出,默認的是笛卡爾坐標。

sparse:bool類型,如果為True,返回一個稀疏矩陣保存在內存中,默認是False。

copy:bool類型,如果是False,返回一個原始數組的視圖保存在內存中,默認是True。如果,sparse和copy都為False,將有可能返回一個不連續的數組。而且,如果廣播數組的元素超過一個,可以使用一個獨立的內存。如果想要對這個數組進行寫操作,請先拷貝這個數組。

返回值:x1,x2,....,xn:ndarray(numpy數組)

numpy中的meshgrid函數 - 修煉之路 - CSDN博客





reference:

NumPy 官方快速入門教程(譯) - 掘金

python 科學計算 — numpy 學習筆記 - 細語呢喃

https://blog.csdn.net/sinat_29957455/article/details/78825945

https://blog.csdn.net/feng_jlin/article/details/82790746

https://www.cnblogs.com/massquantity/p/8908859.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379