機(jī)器學(xué)習(xí)之numpy和matplotlib學(xué)習(xí)(十)

今天繼續(xù)來學(xué)習(xí)numpy。
學(xué)習(xí)一件事情最重要的是持之以恒,我自己也知道這個博客系列應(yīng)該不會有很多人觀看和學(xué)習(xí)。
我自己覺得看視頻相對于看書學(xué)的快一些。
但是無論哪一種學(xué)習(xí)形式,你必須要自己動手實(shí)踐。
以后我盡量在代碼里面進(jìn)行講解,大家直接看代碼注釋就可以。
talk is cheap,show me the code?。。?!

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : SundayCoder-俊勇
# @File    : numpy2.py
import numpy as np
# numpy基本學(xué)習(xí)第二課。
# reshape()函數(shù)可以把一個一行的矩陣轉(zhuǎn)變成為多行多列。
b=np.arange(12).reshape(3,4)
# b=[[ 0  1  2  3]
#    [ 4  5  6  7]
#    [ 8  9 10 11]]
print b

# 那么有沒有一些函數(shù)可以把一個多行多列的函數(shù)轉(zhuǎn)換成為一行的矩陣呢?
# 1.ravel()函數(shù)。
# ravel翻譯過來。
#  vt. 弄清;解開;使糾纏
# vi. 散開;纏結(jié)
# 使用方法如下:
print b.ravel()
# 輸出如下:[ 0  1  2  3  4  5  6  7  8  9 10 11]

# 2.flatten()函數(shù)。
# flatten
# vt. 擊敗,摧毀;使……平坦
# vi. 變平;變單調(diào)
# 使用方法:
print b.flatten()
# 輸出結(jié)果:[ 0  1  2  3  4  5  6  7  8  9 10 11]


# 兩個方法的使用情況一樣,有什么區(qū)別嗎?
# 區(qū)別就是flatten()函數(shù)會請求分配內(nèi)存來保存結(jié)果,而ravel()函數(shù)只是返回數(shù)組的一個視圖(view)
# 怎么去理解呢?
#

b.flatten()[1]=100
print b

b.ravel()[1]=100

print b
# 輸出結(jié)果為:
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
# 輸出結(jié)果為:
# [[  0 100   2   3]
#  [  4   5   6   7]
#  [  8   9  10  11]]
# 說明ravel()函數(shù)對b的改正成功,而flatten()函數(shù)不可以。
#其實(shí)實(shí)際上區(qū)別不大,使用的時候注意就好了。

更新完畢##

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容