numpy库:numpy.asarray()与numpy.array()区别小记

numpy.asarray(a, dtype=None, order=None)
'''
a : 输入,任何可以转换成array形式的数据,如列表,元组等
dtype : 输出数据类型,默认继承输入数据类型(可选参数)
order : {'C', 'F'},使用行主('C')或列主('F')内存表示形式,默认为'C'。(可选参数)
return : ndarray

numpy.array()的详细参数说明见 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.array.html

两者区别

def asarray(a, dtype=None, order=None):
    return array(a, dtype, copy=False, order=order)

def array(a, dtype=None, order=None):
    return array(a, dtype, copy=True, order=order)

numpy.array()在默认情况下会copy输入对象再将转换,而numpy.asarray()只有在必要情况下才会copy输入对象

将一个list转换为array
>>> a = [1, 2]
>>> np.asarray(a)
array([1, 2])

输入本身为array对象
>>> a = np.array([1, 2])
>>> np.asarray(a) is a
True

输入本身为array,在dtype改变时会copy输入对象
>>> a = np.array([1, 2], dtype=np.float32)
>>> np.asarray(a, dtype=np.float32) is a
True
>>> np.asarray(a, dtype=np.float64) is a
False

你可能感兴趣的:(python)