Numpy array建立 使用

2021-09-28 19:47:10 字數 4282 閱讀 9084

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 函式...