簡體   English   中英

以與內置數組兼容的方式擴展numpy數組

[英]Extend numpy array in a way compatible with builtin arrays

我正在嘗試編寫不依賴於用戶使用np.array還是內置數組的代碼。 我試圖避免檢查對象類型等。我唯一的問題是擴展數組。 例如,如果我有兩個Python數組ab ,以將第一個數組擴展到第二個數組,則可以執行a = a + ba.extend(b) 另一方面,如果a是一個numpy數組,則需要使用np.append或其他方法。

有沒有一種快速的方法可以獨立於np數組還是Python數組擴展數組?

即使您的函數在輸入上具有靈活性,您的輸出也應為特定類型。 所以我只是將其轉換為所需的輸出類型。

例如,如果我的函數正在使用numpy.array並返回numpy.array ,但我也想允許輸入list ,那么我要做的第一件事就是將list轉換為numpy.array

像這樣:

def my_func(a, b):
    a = np.asarray(a)
    b = np.asarray(b)
    # do my stuff here

NumPy的append()也適用於列表!

>>> np.append([1,2,3], [1,2,3])
array([1, 2, 3, 1, 2, 3])

如果要自動使結果與輸入類型相同,請嘗試以下操作:

mytype = type(a)
arr = np.append(a, b)
result = mytype(arr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM