亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy如何使用比較有效率

發布時間:2022-03-30 16:42:08 來源:億速云 閱讀:162 作者:iii 欄目:開發技術

今天小編給大家分享一下Numpy如何使用比較有效率的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

在 reshape 函數中使用參數-1

Numpy 允許我們根據給定的新形狀重塑矩陣,新形狀應該和原形狀兼容。有意思的是,我們可以將新形狀中的一個參數賦值為-1。這僅僅表明它是一個未知的維度,我們希望 Numpy 來算出這個未知的維度應該是多少:Numpy 將通過查看數組的長度和剩余維度來確保它滿足上述標準。讓我們來看以下例子:

Numpy如何使用比較有效率

維度為-1 的不同 reshape 操作圖示。

a = np.array([[1, 2, 3, 4],                [5, 6, 7, 8]])  a.shape  (2, 4)

假設我們給定行參數為 1,列參數為-1,那么 Numpy 將計算出 reshape 后的列數為 8。

a.reshape(1,-1)  array([[1, 2, 3, 4, 5, 6, 7, 8]])

假設我們給定行參數為-1,列參數為 1,那么 Numpy 將計算出 reshape 后的行數為 8。

a.reshape(-1,1)  array([[1],         [2],         [3],         [4],         [5],         [6],         [7],         [8]])

下面的代碼也是一樣的道理。

a.reshape(-1,4)  array([[1, 2, 3, 4],         [5, 6, 7, 8]])a.reshape(-1,2)  array([[1, 2],         [3, 4],         [5, 6],         [7, 8]])a.reshape(2,-1)  array([[1, 2, 3, 4],         [5, 6, 7, 8]])a.reshape(4,-1)  array([[1, 2],         [3, 4],         [5, 6],         [7, 8]])

這也適用于任何更高維度張量的 reshape,但是只有一個維度的參數能賦值為-1。

a.reshape(2,2,-1)  array([[[1, 2],          [3, 4]],         [[5, 6],          [7, 8]]])a.reshape(2,-1,1)  array([[[1],          [2],          [3],          [4]],          [[5],          [6],          [7],          [8]]])

如果我們嘗試 reshape 不兼容的形狀或者是給定的未知維度參數多于 1 個,那么將會報錯。

a.reshape(-1,-1)  ValueError: can only specify one unknown dimensiona.reshape(3,-1)  ValueError: cannot reshape array of size 8 into shape (3,newaxis)

總而言之,當試圖對一個張量進行 reshape 操作時,新的形狀必須包含與舊的形狀相同數量的元素,這意味著兩個形狀的維度乘積必須相等。當使用 -1 參數時,與-1 相對應的維數將是原始數組的維數除以新形狀中已給出維數的乘積,以便維持相同數量的元素。

Argpartition:在數組中找到最大的 N 個元素。

Numpy如何使用比較有效率

Numpy 的 argpartion 函數可以高效地找到 N 個最大值的索引并返回 N 個值。在給出索引后,我們可以根據需要進行值排序。

array = np.array([10, 7, 4, 3, 2, 2, 5, 9, 0, 4, 6, 0])index = np.argpartition*(array, -5)[-5:]  index  array([ 6,  1, 10,  7,  0], dtype=int64)np.sort(array[index])  array([ 5,  6,  7,  9, 10])

Clip:如何使數組中的值保持在一定區間內

在很多數據處理和算法中(比如強化學習中的 PPO),我們需要使得所有的值保持在一個上下限區間內。Numpy 內置的 Clip 函數可以解決這個問題。Numpy clip () 函數用于對數組中的值進行限制。給定一個區間范圍,區間范圍外的值將被截斷到區間的邊界上。例如,如果指定的區間是 [-1,1],小于-1 的值將變為-1,而大于 1 的值將變為 1。

Numpy如何使用比較有效率

Clip 示例:限制數組中的最小值為 2,最大值為 6。

#Example-1  array = np.array([10, 7, 4, 3, 2, 2, 5, 9, 0, 4, 6, 0])  print (np.clip(array,2,6))[6 6 4 3 2 2 5 6 2 4 6 2]#Example-2  array = np.array([10, -1, 4, -3, 2, 2, 5, 9, 0, 4, 6, 0])  print (np.clip(array,2,5))[5 2 4 2 2 2 5 5 2 4 5 2]

Extract:從數組中提取符合條件的元素

我們可以使用 Numpy extract () 函數從數組中提取符合條件的特定元素。

Numpy如何使用比較有效率

arr = np.arange(10)  arrarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])# Define the codition, here we take MOD 3 if zero  condition = np.mod(arr, 3)==0  conditionarray([ True, False, False,  True, False, False,  True, False, False,True])np.extract(condition, arr) array([0, 3, 6, 9])

同樣地,如果有需要,我們可以用 AND 和 OR 組合的直接條件,如下所示:

np.extract(((arr > 2) & (arr < 8)), arr)array([3, 4, 5, 6, 7])

setdiff1d:如何找到僅在 A 數組中有而 B 數組沒有的元素

返回數組中不在另一個數組中的獨有元素。這等價于兩個數組元素集合的差集。

Numpy如何使用比較有效率

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])  b = np.array([3,4,7,6,7,8,11,12,14])  c = np.setdiff1d(a,b)  carray([1, 2, 5, 9])

以上就是“Numpy如何使用比較有效率”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桦川县| 丹凤县| 弥勒县| 大名县| 曲周县| 韩城市| 秭归县| 南投县| 弥勒县| 龙井市| 屏东县| 潍坊市| 勐海县| 遂川县| 阿瓦提县| 吉安县| 康乐县| 苏州市| 清流县| 汤阴县| 工布江达县| 惠州市| 翁源县| 确山县| 竹山县| 河西区| 图木舒克市| 本溪市| 怀柔区| 吉隆县| 庆云县| 高安市| 改则县| 安福县| 莎车县| 云和县| 类乌齐县| 贡觉县| 佳木斯市| 沾化县| 长宁县|