zoukankan      html  css  js  c++  java
  • numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

    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是不可序列化的。

  • 相关阅读:
    hdu 4358 Boring counting 夜
    流式读取文件
    文件夹操作
    通过 fs 模块创建下列文件结构练习
    如何判断一个路径是否为文件夹
    文件读取
    写入流写入文件
    文件简单写入
    移动并重名文件,删除文件
    __dirname绝对路径
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422236.html
Copyright © 2011-2022 走看看