1. 程式人生 > >Python列表、Numpy陣列與矩陣的區別

Python列表、Numpy陣列與矩陣的區別

參考部落格:http://blog.sina.com.cn/s/blog_d8f6ec6b0102wtbh.htmlhttp://blog.sina.com.cn/s/blog_c4520abd0102x7v4.html
Python列表和Numpy陣列的區別:
Numpy使用ndarray物件來處理多維陣列,該物件是一個快速而靈活的大資料容器。使用Python列表可以儲存一維陣列,通過列表的巢狀可以實現多維陣列,那麼為什麼還需要使用Numpy呢?Numpy是專門針對陣列的操作和運算進行了設計,所以陣列的儲存效率和輸入輸出效能遠優於Python中的巢狀列表,陣列越大,Numpy的優勢就越明顯。通常Numpy陣列中的所有元素的型別都是相同的,而Python列表中的元素型別是任意的,所以在通用效能方面Numpy陣列不及Python列表,但在科學計算中,可以省掉很多迴圈語句,程式碼使用方面比Python列表簡單的多。

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命令 。
例如:
這裡寫圖片描述


這裡寫圖片描述

  1. ** 運算子的作用也不一樣 :因為a是個matrix,所以a**2返回的是a*a,相當於矩陣相乘。而c是array,c**2相當於,c中的元素逐個求平方。
    這裡寫圖片描述

  2. 問題就出來了,如果一個程式裡面既有matrix 又有array,會讓人腦袋大。但是如果只用array,你不僅可以實現matrix所有的功能,還減少了程式設計和閱讀的麻煩。

  3. 當然你可以通過下面的兩條命令輕鬆的實現兩者之間的轉換:np.asmatrix和np.asarray
  4. numpy 中的array與numpy中的matrix的最大的不同是,在做歸約運算時,array的維數會發生變化,但matrix總是保持為2維。例如下面求平均值的運算.
    這裡寫圖片描述

    這裡寫圖片描述

相關推薦

Python列表Numpy陣列矩陣區別

參考部落格:http://blog.sina.com.cn/s/blog_d8f6ec6b0102wtbh.html、http://blog.sina.com.cn/s/blog_c4520abd010

python列表元組集合

python列表 一、列表的建立與操作 1.建立列表 a = [] ##元素型別可為int,float,complex,str,list,tuple b = [a, 1, True, 3j + 2, "hi"] c = [[1, 2, 3, 4]

Python 列表元組集合字典Json陣列矩陣 簡單示例說明

【列表】有序的集合,可隨時新增和刪除其中的元素 【列表】有序的集合,可隨時新增和刪除其中的元素 list = [1,2,3,'A','B','C'] #檢視 list list[5] print(list[5]) #末尾新增 list.append('D') #指定

【轉發】python 列表元組字典的區別

一、列表 1.任意物件的有序集合 列表是一組任意型別的值,按照一定順序組合而成的 2.通過偏移讀取 組成列表的值叫做元素(Elements)。每一個元素被標識一個索引,第一個索引是0,序列的功能都能實現 3.可變長度,異構以及任意巢狀 列表中的元素可以是任意型別,甚至是列表型別,也就是說

字元型別char字串字元陣列字元陣列資料陣列區別

字元型別是以ASCII碼值運算的:小寫字母比相應的大寫字母大32,其中A=65,a=97 Esc鍵 27(十進位制)、'\x1B'(十六進位制)、'\33'(八進位制) 轉義字元:\0 空字元\n 換行\r 回車\t 水平製表符(Tab鍵)\' 單引號\" 雙引號\\ 反斜槓 char c='M';

【轉】 Python列表元組集合字典的區別和相互轉換

tail 互轉 http pen append color class div 交集 原文鏈接:https://blog.csdn.net/lilongsy/article/details/70895753 列表取交集: a=[1,2,3] b=[2] print(li

Python開啟檔案,將listnumpy陣列內容寫入txt檔案中

python儲存numpy資料:numpy.savetxt("result.txt", numpy_data); 儲存list資料:file=open('data.txt','w') file.wri

Python 列表元組字典集合的區別

四 list,tuple,dict和set的主要區別 1 .list list是一個使用方括號括起來的有序元素集合; List 可以作為以 0 下標開始的陣列,任何一個非空 list 的第一個元素總是 L[0],負數索引從 list 的尾部開始向前計數來存取元素。任

python 程序執行緒協程的區別

簡單總結 程序是資源分配的單位 執行緒是作業系統排程的單位 程序切換需要的資源很最大,效率很低 執行緒切換需要的資源一般,效率一般(當然了在不考慮GIL的情況下) 協程切換任務資源很小,效率高 多程序、多執行緒根據cpu核數不一樣可能是並行的,但是協程是在一個執行緒中 所以是併發 程序:一個執行

python中的列表numpy陣列排序

一、列表排序  # python中對列表排序有sort、sorted兩種方法,其中sort是列表內建方法,其幫助文件如下:In [1]: help(sorted) Help on built-in function sorted in module builtins: sorted

Python列表集合字典(3)

插入 更多 rev port 之前 表操作 clear 位置 end 目錄 一、列表 二、集合 三、字典 一、列表 1. 列表初識 ??列表的使用為處理特定順序排列的數據提供了便利,列表元素可以是字母、數字或者其他信息,同時所加元素之間不存在任何關系。 ??在Pyth

Python 列表元組字典集合 區別

字典是另一種可變容器模型,且可儲存任意型別物件。 字典的每個鍵值對()用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如

python 列表元組字符串字典集合return等梳理

插入 deepcopy fda 刪除 style import pan 查詢 inf 有必要對這些數據類型及操作做下梳理: 1.列表:增刪改查   a.查找: 1 >>> names=["zhang","wang","li","zhao"]

Mysql中key primary key unique key index區別

條件 那是 database 表空間 可用 where 進行 utf8 擁有 索引被用來快速找出在一個列上用一特定值的行。沒有索引,MySQL不得不首先以第一條記錄開始並然後讀完整個表直到它找出相關的行。 表越大,花費時間越多。如果表對於查詢的列有一個索引,MySQL能快

python列表元組(三)

python一、列表的定義1. 創建列表>>> name = [‘gao‘, ‘sam‘, ‘snow‘, ‘jey‘] >>> type(name) <type ‘list‘> >>> name=list([‘gao‘, ‘sam‘, ‘sn

9. python 列表元組字典

python 列表 元組 字典1.列表a = [‘a‘, ‘b‘, ‘c‘, ‘abc‘]## append 末尾追加a.append(‘hello‘)print (a)[‘a‘, ‘b‘, ‘c‘, ‘abc‘, ‘hello‘]## pop 末尾刪除a.pop()print (a)[‘a‘, ‘b‘

Python列表元組字典

列表、元組、字典Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。>>>classmates = [‘Michael‘,‘Bob‘,‘Tracy‘]>>>classmates用 len() 函數可以獲得 list 元素的

python列表迴圈判斷小練習——購物車小程式

程式要求: 1.商品資訊儲存在檔案中。 2.列印商品資訊,包括名稱及編號,價格 3.輸入工資 4.選擇商品編號將商品放入購物車,並計算剩餘工資。 5.工資不夠時提醒餘額不足 6.將已購商品,餘額記錄長久儲存 7.列印已購商品名單 8.可以新增商品及價格   流程圖 &nbs

python - 列表元祖字典的應用場景

列表的應用場景: 儘管python 中的列表可以儲存不同型別的資料,但是在開發中,更多的應用場景是: 1.列表儲存相同型別的資料 2.通過迭代遍歷,在迴圈體內部,針對列表中的每一項元素,執行相同的操作。 元組的應用場景 儘管可以使用for in 遍歷元祖,

Python——列表元祖字典 操作方法

一、編碼方式佔位 1、ASCII碼:字母、數字、特殊字元,1個位元組佔8位 2、Unicode:字母 2位元組佔16位  /  中文 4位元組 佔32位 3、UTF8:字母 1位元組佔8位 / 歐洲 2位元組佔16位 / 中文 3位元組佔24位 4、GBK: 字母1位元組 佔8位