numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

来源:互联网 发布:软件系统工程师培训 编辑:程序博客网 时间:2024/06/10 01:09

numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

原创 2017年02月18日 10:35:43

1. np.asarray —— numpy 风格的类型转换

从已有多维数组创建新的多维数组,数据类型可重新设置

>> B = np.asarray(A, dtype='int32')
  • 1

2. np.array() vs np.asarray

源码之前,了无秘密。 
两者的区别和联系,铜通过查看源码,一目了然:

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

两者主要的区别在于,array(默认)复制一份对象,asarray不会执行这一动作。

>>> a = np.array([1, 2])>>> np.asarray(a) is aTrue>>> np.array(a) is aFalse
  • 1
  • 2
  • 3
  • 4
  • 5

3. ndarray.tolist()

ndarray.tolist()np.array()构成一对互操作

>>> X = np.random.randn(3, 3)>>> Xarray([[ 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]])>>> Xarray([[ 0.25272657, -1.81033933,  0.5215726 ],       [ 1.24087521,  0.86335847,  1.79204052],       [-0.65888093,  1.1561787 , -0.53913756]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

什么情况下需要将numpy ndarray转化为list呢?需要序列化(serialization)时,numpy ndarray是不可序列化的。

原创粉丝点击