1. 程式人生 > >python中numpy庫

python中numpy庫

numpy是科學計算包(Numeric Python) 關於numpy的命令可以使用help檢視,如help(numpy.array)

1.numpy中資料要為相同的資料型別,否則會強制轉換

>>> from numpy import *
>>> a = array([1,2,3.0])
>>> print(a)
[1. 2. 3.] #這裡的結果就是轉換成相同的型別浮點型
>>> from numpy import *
>>> b = array([1,2,'i'])
>>> print(b)
['1' '2' 'i'] #轉化成了string型別

2.numpy資料中資料型別的轉換numpy.astype()

>>> from numpy import *
>>> vector = array(["1","2"])
>>> vectorF = vector.astype(float)
>>> print(vectorF)
[1. 2.]

3.numpy讀資料numpy.genfromtxt()讀取檔案並轉化成矩陣 函式的原始形式:

numpy.genfromtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, 
skip_header=0, skip_footer=0, converters=None, missing_values=None, 
filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, 
replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, 
usemask=False, loose=True, invalid_raise=True, max_rows=None)[source]

fname:檔名(注意檔案的路徑) delimiter:str,int,or sequence,optional.他是分割值,即表示你的陣列用什麼來分割 dtype:分割後陣列的資料型別,預設是根據每行資料資料型別(獨立地) names:列的名稱(可重寫),dtype的資料型別對應著每一列的資料型別

from numpy import *

f = genfromtxt(fname=r'E:\\奮鬥歷程\\Machine_Learning\\MLiA_SourceCode\\'
                     r'machinelearninginaction\\Ch02\\datingTestSet.txt',
               delimiter='\t',names=['a','b','c','d'],dtype=['i8','f8','f8','U12'])
print(f[0]) #f的形式是[()()()...],f[0]結果是(40920, 8.326976, 0.953952, 'largeDoses')

4.numpy可以通過布林值對陣列進行索引

from numpy import *

vector = array([[1,2,3,4],[0,9,7,9]])
b = vector != 1
print(b) 
print(vector[b])
"""
結果是:
[[False  True  True  True]
 [ True  True  True  True]]
[2 3 4 0 9 7 9]
 """

這個性質適合給某個元素進行賦值

from numpy import *

vector = array([[1,2,3,4],[0,9,7,9]])
b = vector == 1
print(b)
print(vector[b])
vector[b] = 6
print(vector)

結果是: 在這裡插入圖片描述 ☆持續更新