今天來學習一下python庫中,支援高階大量的維度陣列與矩陣運算的神奇的numpy庫
numpy同時也對陣列運算提供大量的數學函式,對於大量計算執行效率極好
是大量機器學習框架的基礎庫
廢話不多說,直接開整
numpy中最核心的結構就是ndarray陣列
numpy中定義的最重要的物件是成為ndarray的n維陣列型別
它描述相同型別的元素集合。可以使用基於零的索引訪問集合中的專案。大部分的陣列操作僅僅是修改元資料部分,而不改變其底層的實際資料。
陣列的維數稱為秩,簡單來說就是如果你需要獲取陣列中乙個特定元素所需的座標數
如a是乙個2×3×4的矩陣,你索引其中的乙個元素必須給定三個座標a[x,y,z],故它的維數就是3。
陣列中所有元素的型別必須是一致的,python支援的資料型別有整型、浮點型以及複數型
但這些型別不足以滿足科學計算的需求,因此numpy中新增了許多其他的資料型別
如bool、inti、int64、float32、complex64等。同時,它也有許多其特有的屬性和方法。
import numpy as np
vector = np.array([5,10,15,20])
matrix = np.array([[5,10,15],[20,25,30],[30,35,40]])
print (vector)
print (matrix)
我們可以就看到,這裡我寫了乙個行向向量,和乙個矩陣向量
可以得到如上圖所示的結果,列印出乙個行向量,和乙個3行3列的矩陣向量
ndarray中有很多個可以呼叫的屬性,我們可以做一些分析等等操作
首先講一下shape屬性
可以看到,執行上面的**我們得到這樣乙個結果
shape就是說,我要看一下這個向量的維度是多少
第乙個向量,vector是乙個行向量,所以說列印出來只有當前的向量中的元素個數4
對於第二行結果來說, 他是乙個3x3的矩陣向量,(3,3)表示我們當前列印的資料
是乙個3行3列的矩陣向量
接下來看看這個例子
可以看到,執行上面的**,我們可以得到乙個dtype型別值
這個值是表示我們的dtype的格式為int32,下面我們來做一些變化
我們可以看到,這裡numpy幫我們自動轉換了資料格式
講所有的整數型別,全部都換成了浮點型
dtype也變成了float64型別,我們在做些變化
number = np.array([1,2,3,'4'])
print(number)
number.dtype
我們把4修改為字串型別
得到的結果,資料全都變成字串型別了,資料型別也變了
也就是說,在numpy的ndarray中,必須傳進來的資料型別,都是同一種結構的
我們現在來講下如何使用numpy來讀取檔案資料
我們這裡有些測試資料,名為1.txt檔案
testtxt = np.genfromtxt('1.txt',delimiter=".", dtype=str ,skip_header=1)
print(testtxt)
這段**的意思是,是用numpy中的genfromtxt方法讀取檔案
引數為,1.txt檔名稱,delimiter 以什麼進行分割這裡用 . 點號進行分割
dtype =str 指定當前的資料型別為字串
skip_header=1 ,指定去掉第一行資料
得到如下結果
得到了檔案中的內容,轉換成了矩陣,讀出來的資料都是一種矩陣資料格式
當然這個檔案讀取方式不會經常用到,後面講另外乙個更好用的,pands庫中的
這裡就不多講numpy中的檔案讀取
如果我想取出上面矩陣中的某個值,怎麼操作呢?
比如我們想取出第三行的第乙個資料
第四行的第二個資料
out = testtxt[2,0]
out1 = testtxt[3,1]
print(out)
print(out1)
執行上訴**
可以看到,在numpy中,index下標是從0開始的,而不是1
所以一定要切記
我們在定義乙個向量
vector = np.array([5,10,15,20,25])
print(vector[0:3])
我想列印向量中的前三個值
可以看到,這裡的操作和python中的切片操作一樣
選取0到3,包括0但是不包括3
那麼對於矩陣來說也是一樣的
我想列印當前矩陣所有樣本的第二列
matrix[:,1]那麼這裡用逗號隔開,第個表示行,第二個表示列,表示取所有行的第二列
用:進行站位
我想取所有行的前兩列怎麼取呢?
matrix = np.array([
[1,2,3],
[4,5,6],
[7,8,9],
])print(matrix[:,0:2])
這裡可以看到,取全部行,的0號,和1號列,2號不包含
得到結果,也很簡單
那麼我如何取某幾行,某幾列呢?方法也是一樣的
matrix = np.array([
[1,2,3],
[4,5,6],
[7,8,9],
])print(matrix[1:3,0:2])
取第2,3行的,1,2列
那麼可以得到
好的,今天的numpy庫就講到這裡。下次我們繼續說。感覺閱讀歡迎點讚**。謝謝各位!
numpy庫的學習
今天開始進行對numpy庫的學習為了以後使用python進行機器學習開闢道路 為了方便在文件開頭可以 import numpy as np 這個函式實際上是 numpy.array object,dtype none,copy true,order none,subok false,ndmin 0 ...
機器學習 numpy庫的學習
import numpy as np import random 處理數值型的資料 使用numpy生成陣列,型別為ndarray t1 np.array 1 2,3 print t1 print type t1 t2 np.array range 10 print t2 full填充元素 np.fu...
numpy學習(一) numpy基礎
此文為學習 理解numpy,numpy簡單入門教程整理的學習筆記 numpy是乙個功能強大的python庫,主要用於對多維陣列執行計算。numpy這個詞 於兩個單詞 numerical和python。a np.array 0,1,2,3,4 a np.array 0,1,2,3,4 1,2,3,4,...