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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值