ndarray物件的使用方法

2022-08-31 20:18:10 字數 4469 閱讀 5368

例如:

import

numpy

ndarr1 = numpy.random.randint(0,10.size=5)

ndarr1[0] # 取陣列中的第乙個值, 以此類推

ndarr1[1]

ndarr1[-1]

例如:

nd = np.random.randint(0,10,size=(5,6))

ndarray([[0, 4, 7, 5, 9, 7],

[5, 3, 2, 9, 5, 5],

[9, 2, 6, 2, 7, 7],

[0, 3, 5, 4, 3, 9],

[9, 1, 9, 7, 1, 3]])

nd[0][0]

#普通的索引

#整數陣列索引

nd[0,0]

nd[-1,0]

nd[-1,]

#往裡乙個維度 要同時 取出 0 2 4

nd[-1,[0,2,4]]

nd[-1,[4,2,0]] #

順序任意 可以正向取 也可以反向取 還可以隨便取 而且可以重複取

nd[-1,[2,4,0]]

nd[-1,[2,4,0,0,0,0]]

一維與列表切片完全一致 多維時同理

例如:

ndarr = np.random.randint(0,10,size=5)

ndarr

array([8, 6, 5, 3, 6])

ndarr[1:4]

ndarr[0:4]

ndarr[:4]

ndarr[:]

而且ndarray還支援用,一級一級往裡找

ndarr[:2]

#切片也是 從外往裡 一級一級切

ndarr[:,0:2]

ndarr[1:3,1:4]

ndarr[1:3,1:-1]

使用兩個:: 的形式 進行切片和翻轉

例如:

nd = np.random.randint(0,10,size=9)

ndarray([0, 0, 4, 9, 0, 3, 8, 6, 5])

nd[1:-1:2] #

start:stop:step

nd[::-1]

nd[::-2]

使用reshape函式,注意引數是乙個tuple!

nd = np.random.randint(0,10,size=(4,5))  

ndarray([[2, 5, 0, 9, 6],

[0, 1, 3, 3, 8],

[5, 3, 9, 7, 8],

[6, 0, 9, 8, 8]])

nd.size

20nd.reshape((5,4)) #

形狀可以任意改變 但是size不能變化

nd.reshape((10,2))

nd.reshape((2,10))

#nd.reshape((5,5)) # 25

nd.reshape((20,1))

nd.reshape((-1,1)) #

-1指的是自動計算的意思

nd.reshape((1,20))

nd.reshape((1,-1))

np.concatenate()

鏈結需要注意的點:

#

第乙個引數 以元組的形式 傳入要拼接的多個ndarr

np.concatenate((nd,nd)) #

預設按照縱向拼接

#第二個引數 axis 用來指定 拼接方向

#np.concatenate((nd,nd),axis=0)

#np.concatenate((nd,nd),axis=1)

#np.concatenate((nd,nd),axis=-1) # -1是最裡層

np.concatenate((nd,nd),axis=-2) #

與級聯類似,三個函式完成切分工作:

#

ary, indices_or_sections, axis=0

#ary 要切分的陣列

#indices_or_sections 用來指定 分成幾份 或者 從**分

#axis 用來指定切分的方向

np.split()

所有賦值運算不會為ndarray的任何元素建立副本。對賦值後的物件操作也會影響原陣列。

可使用copy()函式建立副本,類似於python中的deepcopy

#

對於ndarray物件 凡是涉及到複製後改變 又不希望影響原陣列的 都用copy (這是最保險的)

nd2 = nd.copy() #

深層copy

function name    nan-safe version    description

np.sum np.nansum compute sum of elements 所有元素的和

np.prod np.nanprod compute product of elements 所有元素的乘積

np.mean np.nanmean compute mean of elements

np.std np.nanstd compute standard deviation

np.min np.nanmin find minimum value

np.max np.nanmax find maximum value

np.argmin np.nanargmin find index of minimum value

np.argmax np.nanargmax find index of maximum value

np.any n/a evaluate whether any elements are true

np.all n/a evaluate whether all elements are true

1) 算術運算子:

2) 矩陣積np.dot()

ndarr

array([[4, 5, 8, 3, 0],

[9, 4, 4, 1, 5],

[9, 6, 4, 0, 1],

[6, 1, 6, 4, 9]])

#矩陣的點積

#a矩陣 和 b矩陣 做點積

#a矩陣是m行n列的矩陣

#b矩陣是i行j列的矩陣

#b的行數必須得等於a的列數 i要等於n

#結果是乙個 m行 j列的乙個矩陣

np.sort()與ndarray.sort()都可以,但有區別:

np.partition(a,k)

有的時候我們不是對全部資料感興趣,我們可能只對最小或最大的一部分感興趣。

示例:

nd = np.random.randint(0,100,size=15)

ndarr = np.random.randint(0,100,size=15)

ndarr

array([83, 57, 43, 83, 95, 73, 95, 7, 46, 26, 86, 47, 59, 45, 64])

#10個資料庫 裡面分別有10000商品

#計算銷量最大的前三個

#a, kth a是要排序的陣列 kth是要找最大的幾個

#np.partition(ndarr,3) # k是3 表示尋找 最小的3個

#np.partition(ndarr,5) # 順序可能是沒有排好的 但是最前面的5個一定是最小的5個

np.partition(ndarr,-5)

np.partition(ndarr,-4)

array([46, 7, 43, 45, 59, 47, 26, 57, 64, 73, 83, 83, 95, 86, 95])

java ResultSet物件的使用方法

resultset set while set.next resultset一般由資料庫操作statement的executequery 方法返回 遍歷resultset一般使用while迴圈.利用resultset的next 方法 resultset set while set.next resu...

建立ndarray物件的方式

python建立陣列的方式 使用array建立陣列 import numpy as np a1 np.array i for i in range 6 引數為列表 a1 執行結果一維陣列array 0,1,2,3,4,5 通過type函式確定a1物件的型別 type a1 a1是ndarray物件 ...

ndarray的屬性和方法

下面以這兩行 為基礎資料,進行演示 improt numpy as np x np.array 1,3,5 2,4,6 7,8,9 5,2,0 dtype int 1.ndarray.t 進行矩陣轉置 print x.t 輸出矩陣為 1275 34 82 5690 2.ndarray.size 檢視...