今天繼續(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ū)別不大,使用的時候注意就好了。