pythonnumpy向量
㈠ 圖解python中數據分析工具包:Numpy
numpy是我學習python遇到的第一個第三方工具包,它可以讓我們快速上手數據分析。numpy提供了向量和矩陣計算和處理的大部分介面。目前很多python的基礎工具包都是基於numpy開發而來,比如 scikit-learn, SciPy, pandas, 還有 tensorflow。 numpy可以處理表格、圖像、文本等數據,極大地方便我們處理和分析數據。本文主要內容來自於Jay Alammar的一篇文章以及自己學習記錄。
原文地址: https://jalammar.github.io/visual-numpy/
使用過程中,如果希望 Numpy 能創建並初始化數組的值, Numpy 提供了 ones()、zeros() 和 random.random() 等方法。只需傳遞希望生成的元素數量(大小)即可:
還可以進行如下操作:
一般,需要數組和單個數字之間也可以進行運算操作(即向量和標量之間的運算)。比如說 data * 1.6 ,numpy利用一個叫做廣播機制(broadcasting)的概念實現了這一運算。:
我們可以通過索引對numpy數據獲取任意位置數據或者對數據切片
我們可以通過numpy自帶的函數對數據進行一些想要的聚合計算,比如min、max 和 sum ,還可以使用 mean 得到平均值,使用 prod 得到所有元素的乘積,使用 std 得到標准差等等。
上述操作不僅可以應用於單維度數據,還可以用於多維度數據{(矩陣)。
同樣可以使用ones()、zeros() 和 random.random()創建矩陣,只要寫入一個描述矩陣維數的元組即可:
numpy還可以處理更高維度的數據:
創建更高維度數據只需要在創建時,在參數中增加一個維度值即可:
根據數組中數值是否滿足條件,輸出為True或False.
希望得到滿足條件的索引,用np.where函數實現.
根據索引得到對應位置的值.
np.where也可以接受另兩個可選擇的參數a和b。當條件滿足時,輸出a,反之輸出b.
獲取數組最大值和最小值的索引可以使用np.argmax和np.argmin.
1、numpy.tofile()和numpy.fromfile()
保存為二進制格式,但是不保存數組形狀和數據類型, 即都壓縮為一維的數組,需要自己記錄數據的形狀,讀取的時候再reshape.
2、numpy.save() 和 numpy.load()
保存為二進制格式,保存數組形狀和數據類型, 不需要進行reshape
實例:
3、numpy.savetxt()和numpy.loadtxt()
np.savetxt(fname,array,fmt=』%.18e』,delimiter=None)
Parameter解釋:
array:待存入文件的數組。
fmt:寫入文件的格式
實例:
㈡ python 中 numpy 的(2,1)維列向量 為什麼可以乘(2,2)維向量
numpy中直接用 * 即可表示數與向量的乘法,參考python 2.7的一個例子:
inport numpy as np
a = np.array([1,2,3,4]) # 向量
b = 5 # 數
print a*b
++++++++++++
[5,10,15,20]
㈢ python numpy 向量
importnumpyasnp
a=[1,2,3]
b=[4,5,6]
r=np.vstack((a,b)).T
print(r)
>>>[[1,4]
[2,5]
[3,6]]
㈣ Python 裡面向量該怎樣運算
首先要寫上這一句:
from numpy import *
(寫上這句的前提也得你已經安了numpy)
(1) 定義一個零向量(4維):
>>>a=zeros(4)
>>>a
array([0.,0.,0.,0.])
定義一個List:
b=[1,2,3,4]
(2)向量可直接與List相加:
>>>c=a+b
>>>c
array([1.,2.,3.,4.])
(3)要給向量里每個元素都乘以同一個數:
>>>d=b*[3]
或者:
>>>c=3
>>>d=b*[c]
>>>d
array([3.,6.,9.,12.])
而不能是d=b*3,即要乘的這個數字得是個List形式
(4)兩個向量相除(對應元素相除):
>>>e=[3,2,3,4]
>>>f=d/e
>>>f
array([1.,3.,3.,3.])