1. 程式人生 > >numpy學習筆記1—ravel() 和 flatten()

numpy學習筆記1—ravel() 和 flatten()

numpy的ravel() 和 flatten()函式

簡介

首先宣告兩者所要實現的功能是一致的(將多維陣列降位一維)。這點從兩個單詞的意也可以看出來,ravel(散開,解開),flatten(變平)。兩者的區別在於返回拷貝(copy)還是返回檢視(view),numpy.flatten()返回一份拷貝,對拷貝所做的修改不會影響(reflects)原始矩陣,而numpy.ravel()返回的是檢視(view,也頗有幾分C/C++引用reference的意味),會影響(reflects)原始矩陣。

兩者功能

In [14]: x=np.array([[1,2],[3,4]])

# flattenh函式和ravel函式在降維時預設是行序優先
In [15]: x.flatten() Out[15]: array([1, 2, 3, 4]) In [17]: x.ravel() Out[17]: array([1, 2, 3, 4]) # 傳入'F'引數表示列序優先 In [18]: x.flatten('F') Out[18]: array([1, 3, 2, 4]) In [19]: x.ravel('F') Out[19]: array([1, 3, 2, 4]) #reshape函式當引數只有一個-1時表示將陣列降為一維 In [21]: x.reshape(-1) Out[21]: array([1, 2, 3, 4
]) #x.T表示x的轉置 In [22]: x.T.reshape(-1) Out[22]: array([1, 3, 2, 4])

兩者區別

>>> x = np.array([[1, 2], [3, 4]])
>>> x.flatten()[1] = 100
>>> x
array([[1, 2],
       [3, 4]])            
>>> x.ravel()[1] = 100
>>> x
array([[  1, 100],
       [  3,   4]])

通過上面的程式可以發現flatten函式返回的是拷貝。

相關推薦

numpy學習筆記1ravel() flatten()

numpy的ravel() 和 flatten()函式 簡介 首先宣告兩者所要實現的功能是一致的(將多維陣列降位一維)。這點從兩個單詞的意也可以看出來,ravel(散開,解開),flatten(變平)。兩者的區別在於返回拷貝(copy)還是返回檢視(view

機器學習筆記 1 LMS梯度下降(批梯度下降) 20170617

temp eas 理解 import 樣本 alt mes show 超過 # 概念 LMS(least mean square):(最小均方法)通過最小化均方誤差來求最佳參數的方法。 GD(gradient descent) : (梯度下降法)一種參數更新法則。可以作為L

Numpy學習筆記1

ima image .com 分享圖片 alt com 分享 技術分享 技術 Numpy學習筆記1

【C++】 string學習筆記1——定義初始化string物件

string學習筆記1 c++初始化string物件的方式有以下幾種常見的方式。 /**定義和初始化string**/ string s1; ///預設的初始化,s1為一個空字串。 string s2 = s1;

Golang學習筆記1-組合介面

主要內容 1.組合 2.介面 3.常見問題 4.總結 1.組合 Golang中沒有OOP中繼承的概念,取而代之的是組合,同樣起到屬性和方法繼承 的作用,特別是匿名組合,其表現形式和繼承的行為類似,但是卻有很多不同的地方,相對於繼承、多型這些典型的OOP思

Effictive Java學習筆記1:創建銷毀對象

安全 需要 () 函數 調用 bsp nbsp bean 成了 建議1:考慮用靜態工廠方法代替構造器 理由:1)靜態方法有名字啊,更容易懂和理解。構造方法重載容易讓人混淆,並不是好主意    2)靜態工廠方法可以不必每次調用時都創建一個新對象,而公共構造函數每次調用都會

Three.js 學習筆記(1)--坐標體系旋轉

external 單位 svg cal resource nsf font cos 證明 前言 JavaScript 3D library The aim of the project is to create an easy to use, lightweight,

斯坦福CS20SI TensorFlow學習筆記1——graph、sessionop

efault constant 例如 sub 否則 我們 vector 安全 出現 graph即tf.Graph(),session即tf.Session(),很多人經常將兩者混淆,其實二者完全不是同一個東西。 graph定義了計算方式,是一些加減乘除等運算的組合,類似於

tensorflow學習筆記(1)-基本語法前向傳播

pla oba -a 訓練 style lac 好的 ini 神經元                  tensorflow學習筆記(1)   (1)tf中的圖      圖中就是一個計算圖,一個計算過程。

Yii2學習筆記1--Yii2的基本介紹Composer安裝

writing req project 學習 png ive iis too 使用   Yii 是一個高性能的,以快速,安全,專業著稱 , 適用於開發 WEB2.0 應用的 PHP 框架 。自帶了豐富的功能 ,包括 MVC,DAO/ActiveRecord,I18N/L10

JSPServlet學習筆記1 - 訪問配置

技術分享 exception print pack ping 分享 tdi 1.0 nds 1. 訪問WebContent目錄下的JSP文件 在WebContent中新建一個 test.jsp 文件 <%@ page language="java" co

Python學習筆記1:簡單實現ssh客戶端服務端

bsp dev bre 客戶端 break 基於 bin listen 客戶 實現基於python 3.6。 server端: 1 __author__ = "PyDev2018" 2 3 import socket,os 4 server = socket.s

Python3學習筆記1:變量簡單數據類型

tle 小數點 per port 小數 指導 day this python 2018-09-16 17:22:11 變量聲明:   變量名 = ?? 如: 1 message = "HelloWorld" 2 message = 1 3 message =

[C#學習筆記1]用csc.exe記事本寫一個C#應用程序

增加 最終 env 包含 rar cor line 一個 省選 csc.exe是C#的命令行編譯器(CSharpCompiler),可以編譯C#源程序成可執行程序。它與Visual Studio等IDE(Integrated Development Environment,

C語言學習筆記-1.(資料表示輸出)

C裡面的資料表示和輸出很重要.所以在此記下一些平時會用的東西. 1.系統自帶輸出八進位制和十六進位制(整數): 輸出八進位制:%o             輸出帶字首的八進位制:%#o 輸出十六進位制:%x 

【深度學習筆記1】如何建立確定模型正確性?如何優化模型?

近期看了吳恩達的一本書,關於如何建立和確定優化模型?裡面有個人認為需要學習的地方,故做筆記: 1.模型訓練一共有三個資料集:訓練集、開發集(驗證集)、測試集。開發集不能太小,通常在1000-10000,並且測試集屬於同一分佈;2.過擬合:訓練過程中開發集的準確率和測試集測試的準確率差別不大,若開發集比測試集

C++檔案輸入輸出(C++學習筆記 1

為了開啟一個檔案供輸入或輸出,標頭檔案需要包括 #include<iostream> 和#include<fstream> iostream庫除了支援終端輸入輸出,也支援檔案的輸入和輸出。 1. 開啟一個輸出檔案 必須宣告一個ofstream型別的物件,來

Python學習筆記1:數值字串

Python旅程第一站:     Python數值運算:       type( ) 列印型別 四種基本型別:int, float, str, bool   round( )  取整,四捨五入  

Python學習筆記1:數值字符串

分享圖片 bsp rep 數值運算 round 取整 float 分享 基本類型 Python旅程第一站: Python數值運算: type( ) 打印類型 四種基本類型:int, float, str, bool round( ) 取整,四舍五

numpyravel()flatten()函式

相同點: 兩者所要實現的功能是一致的(將多維陣列降位一維)。這點從兩個單詞的意也可以看出來,ravel(散開,解開),flatten(變平)。 In [14]: x=np.array([[1,2],[3,4]]) # flattenh函式和ravel函式在降維時預設是行序優先 In [15]: x.f