繁体   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