我正在尝试编写的代码不依赖于用户是使用np.array
还是内置数组。我试图避免检查对象类型等。我唯一的问题是扩展数组。例如,如果我有两个Python数组a
和b
,要将第一个扩展到第二个,我可以a = a + b
或a.extend(b)
。另一方面,如果a
是一个numpy数组,我需要使用np.append
或其他。
是否有一种快速扩展数组的方法,无论它们是np
数组还是Python数组?
答案 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)