以与内置数组兼容的方式扩展numpy数组

时间:2014-04-08 14:40:12

标签: python numpy

我正在尝试编写的代码不依赖于用户是使用np.array还是内置数组。我试图避免检查对象类型等。我唯一的问题是扩展数组。例如,如果我有两个Python数组ab,要将第一个扩展到第二个,我可以a = a + ba.extend(b)。另一方面,如果a是一个numpy数组,我需要使用np.append或其他。

是否有一种快速扩展数组的方法,无论它们是np数组还是Python数组?

2 个答案:

答案 0 :(得分:0)

即使您的功能在输入方面很灵活,您的输出也应该是特定类型。所以我只想转换为所需的输出类型。

例如,如果我的函数正在使用numpy.array并返回numpy.array,但我也想允许list输入,我要做的第一件事就是将list转换为numpy.array s。

像这样:

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

答案 1 :(得分:0)

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)