1. np.asarray —— numpy 风格的类型转换
从已有多维数组创建新的多维数组,数据类型可重新设置
>> B = np.asarray(A, dtype='int32')
2. np.array() vs np.asarray
源码之前,了无秘密。
两者的区别和联系,铜通过查看源码,一目了然:
def asarray(a, dtype=None, order=None):
return array(a, dtype, copy=False, order=order)
两者主要的区别在于,array
(默认)复制一份对象,asarray
不会执行这一动作。
>>> a = np.array([1, 2])
>>> np.asarray(a) is a
True
>>> np.array(a) is a
False
3. ndarray.tolist()
ndarray.tolist()
与np.array()
构成一对互操作
>>> X = np.random.randn(3, 3)
>>> X
array([[ 0.25272657, -1.81033933, 0.5215726 ],
[ 1.24087521, 0.86335847, 1.79204052],
[-0.65888093, 1.1561787 , -0.53913756]])
>>> Y = X.tolist()
>>> Y
[[0.25272657237043794, -1.8103393348620243, 0.5215726035022588],
[1.240875214113897, 0.8633584724959652, 1.7920405210518087],
[-0.6588809297676459, 1.1561787010379958, -0.5391375573892387]]
>>> np.array(Y)
array([[ 0.25272657, -1.81033933, 0.5215726 ],
[ 1.24087521, 0.86335847, 1.79204052],
[-0.65888093, 1.1561787 , -0.53913756]])
>>> X
array([[ 0.25272657, -1.81033933, 0.5215726 ],
[ 1.24087521, 0.86335847, 1.79204052],
[-0.65888093, 1.1561787 , -0.53913756]])
什么情况下需要将numpy ndarray
转化为list
呢?需要序列化(serialization)时,numpy ndarray
是不可序列化的。