[英]General question about the significance of -1
我正在處理機器學習中的一個問題,我看到 [-1] 在代碼的不同位置經常出現,但我似乎無法理解它的重要性。
在這個特定示例中,目標是稍微移動訓練集中的所有圖像。
這是代碼:
from scipy.ndimage.interpolation import shift
def shift_image(image, dx, dy):
image = image.reshape((28, 28))
shifted_image = shift(image, [dy, dx], cval=0, mode="constant")
return shifted_image.reshape([-1])
最后一行的 -1 有什么意義?
在numpy數組中, reshape
允許您在嘗試整形數組時“推斷”其中一個尺寸。
import numpy as np
a = np.arange(4).reshape(2,2)
#Output:
array([[0, 1],
[2, 3]])
a.reshape([-1])
#Output:
array([0, 1, 2, 3])
如果您注意到了,還可以使用推論重寫第一個重塑,如下所示:
b =np.arange(4).reshape(2,-1)
#Output:
array([[0, 1],
[2, 3]])
這行:
shifted_image.reshape([-1])
只需使用列表作為參數調用reshape
方法,該列表恰好包含單個元素,數字-1
。 這具有重塑numpy數組的效果。 從文檔:
一個形狀尺寸可以為-1。 在這種情況下,該值是根據數組的長度和其余維來推斷的
reshape
方法將整數列表作為其參數,在這種情況下,列表的元素為-1。
-1特別影響大小調整,我確定您可以在numpy文檔中找到。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.