array函式
語法:numpy.array(object,dtype=none,copy=true,order=none,subok=false,ndmin=0),
其中:object : 是陣列或巢狀的數列
dtype : 是陣列元素的資料型別,可選,預設為浮點型
copy : 是設定是否需要複製,預設需要
order : 建立陣列的樣式,c代表行方向,f代表列方向,a代表任意方向
subok : 預設返回乙個基類型別一致的陣列
ndmin : 指定生成陣列的最小維度
示例:
import numpy as np
datalistint =[0
,1,2
,3,4
,5,]
datalistfloat =[0
,1.0
,2.1,3
,4,5
,]dataint = np.array(datalistint)
datafloat = np.array(datalistfloat)
print
(dataint)
#[1 2 3 4 5]
print
(datafloat)
#[0. 1. 2.1 3. 4. 5. ]
這裡發現,當陣列中存在浮點型資料時,其他整數型資料也會被轉換成浮點型。
np巢狀的陣列會自動轉換成多維陣列
示例:
import numpy as np
datalist =[[
0,1,
2,3,
4,5,
],[0
,1.0
,2.1,3
,4,5
,]]data = np.array(datalist)
print
(data)
#輸出結果如下
resutl=
'''
[[0. 1. 2. 3. 4. 5. ]
[0. 1. 2.1 3. 4. 5. ]]
'''
np.array()的物件屬性
ndim:
說明:陣列軸的個數,在python的世界中,軸的個數被稱作秩
語法:np.array(list).ndim
shape:
說明:陣列的維度。這是乙個指示陣列在每個維度上大小的整數元組
語法:np.array(list).shape
size:
說明: 陣列元素的總個數,等於shape屬性中元組元素的乘積。
語法:np.array(list).size
dtype
說明:乙個用來描述陣列中元素型別的物件,可以通過創造或指定dtype使用標準python型別,numpy也提供它自己的資料型別。
語法:np.array(list).dtype
示例:
import numpy as np
datalist =[[
0,1,
2,3,
4,5,
],[0
,1.0
,2.1,3
,4,5
]]data = np.array(datalist)
print
(data.ndim)
#2print
(data.shape)
#(2,6)
print
(data.size)
#12
陣列建立
全0/1陣列
np.ones(x):生成x個1的陣列
np.zeros(x):生成x個0的陣列
示例:
import numpy as np
data = np.ones(10)
data = np.zeros(10)
print
(data)
無初始值的多維陣列
np.empty((a,b,c)):生成乙個a維陣列,b列,每個列表中有c個數
示例:
import numpy as np
dataa = np.empty(3)
dataab = np.empty((3
,3))
dataabc = np.empty((3
,3,3
))print
(dataa,dataab,dataabc)
從已有的陣列建立陣列
語法:np.asarray(a,dtype = none,order = none),
其中a:任意形式的輸入引數,可以是列表,列表的元組等多維陣列
dtype:資料型別,可選
order:可選,c、f選項分別代表行優先和列優先。
import numpy as np
x =[1,
2,3]
a = np.asarray(x,dtype=
float
)print
(a)#[1. 2. 3.]
動態陣列
說明:實現動態陣列,接收引數,轉換成ndarray物件
語法:np.frombuffer(buffer,dtype=float,count=-1,offset=0),
其中:buffer:被讀取的任意物件
dtype:返回的陣列的資料型別
count:讀取的資料數量,預設為-1,讀取所有資料。
offset:讀取的起始位置,預設為0。
示例:
import numpy as np
x =str
(input
("輸入:"))
#hello wrold
x = x.encode(encoding=
'utf-8'
)a = np.frombuffer(x,dtype=
's1'
)print
(a)print
(a)#[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
可迭代物件建立陣列
說明:從可迭代物件中建立ndarray物件,返回陣列
語法:numpy.fromiter(iterable,dtype,count=-1),
其中:iterable:可迭代物件
dtype:返回陣列的資料型別
count:讀取的資料數量,預設為-1,讀取所有資料
import numpy as np
iterlist =
iter
(range(5
))x = np.fromiter(iterlist,dtype=
float
)print
(x)#[0. 1. 2. 3. 4.]
語法:np.arange(start,stop,step,dtype=none),
其中:start:起始位置,預設為0
stop:停止位置,預設最後一位
step:步長
dtype:輸出陣列的型別
示例:
import numpy as np
x = np.arange(0,
10,1,dtype=
float
)print
(x)#[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
資料型別
資料型別轉換:
語法:np.array(list).astype(np.***),其中*** 是轉換的目標資料型別
示例:
import numpy as np
arr = np.arange(0,
10,1,dtype=
float
)print
(arr.dtype)
#float64
arr = arr.astype(np.int64)
print
(arr.dtype)
#int64
numpy array索引和切片
一維陣列很簡單,基本和列表一致。它們的區別在於陣列切片是原始陣列檢視。這就意味著,如果做任何修改,原始都會跟著修改。這也意味著,如果不想更改原始陣列,我們需要進行顯式的複製,從而得到它的副本。copy import numpy as np arr np.arange 10 arr輸出 array 0...
Numpy array陣列的操作
布林索引 建立乙個隨機整數陣列 arr2 np.random.randint 0,50,20 列印結果 array 17 42,35 3,38 1,34 12,24 39,30 33,46 0,30 0,32 28,16 0 獲取布林索引 arr2 2 0 列印結果 array false true...
numpy array軸的理解
最近的學習中,發現可以把軸看成是維度,特地分享給大家,方便理解numpy的陣列運算。如a np.arange 8 reshape 2,4 0 1 2 3 4 5 6 7 此時軸0對應 2,4 中的2,軸1對應 2,4 中的4。用乙個numpy中的函式來檢驗這個想法 numpy.swapaxes 函式...