我有一个函数,它接受一个数组作为输入,并对它进行一些计算。输入数组可以是也可以不是numpy ndarray(可以是列表、对象等)
在函数中,我将输入数组(无论其类型)转换为numpy ndarray。但是,对于大型阵列,这一步骤的计算成本可能会很高,尤其是在for循环中多次调用该函数时
因此,仅当输入数组还不是numpy ndarray时,我才想将其转换为numpy ndarray
我该怎么做
import numpy as np
def myfunc(array):
# Check if array is not already numpy ndarray
# Not correct way, this is where I need help
if type(array) != 'numpy.ndarray':
array = np.array(array)
# The computation on array
# Do something with array
new_array = other_func(array)
return new_array
使用
asarray
更简单:如果
arr
已经是一个数组,asarray
不会生成副本,因此通过asarray
传递它不会受到惩罚。让numpy
为您进行测试numpy
函数通常通过asarray
(或变量)传递其输入,只要确保类型是它们期望的类型即可您可以在这里使用
isinstance
如果它已经是一个
np.ndarray
,只需返回array
,否则将array
转换为np.array
很接近,但需要调用特定的类,即} ,查看给定对象是否是另一个对象的实例:
numpy.ndarray
(这里您只是与字符串进行比较)。此外,您还有内置的^{相关问题 更多 >
编程相关推荐