python-- numpy--变换多维数组为一维数组(reshape、flatten、ravel)

三个实现方法

import numpy as np
a1 = [[1,2,3,4], [4,5,6,7]] # 二维lsit列表
# 转化为一维list列表
# 首先需要将list 转化为数组, 如果需要转化数据格式,可以利用dtype
a1 = np.array(a1, dtype="float64")
# 方法1:reshape
f1 = a1.reshape(-1).tolist()
print("reshape过后源数据为:\n", a1)

# 方法2:flatten
f2 = a1.flatten().tolist()
print("flatten过后源数据为:\n", a1)

# 方法3:ravel
f3 = a1.ravel().tolist()
print("ravel过后源数据为:\n", a1)

print("变换后的数据为")
print(f1, f2, f3)

结果为:

reshape过后源数据为:
 [[1. 2. 3. 4.]
 [4. 5. 6. 7.]]
flatten过后源数据为:
 [[1. 2. 3. 4.]
 [4. 5. 6. 7.]]
ravel过后源数据为:
 [[1. 2. 3. 4.]
 [4. 5. 6. 7.]]
变换后的数据为
[1.0, 2.0, 3.0, 4.0, 4.0, 5.0, 6.0, 7.0] [1.0, 2.0, 3.0, 4.0, 4.0, 5.0, 6.0, 7.0] [1.0, 2.0, 3.0, 4.0, 4.0, 5.0, 6.0, 7.0]

需要注意

如果使用reshape(1, -1)这个时候在转化为list时候,结果是两个,

import numpy as np
a1 = [[1,2,3,4], [4,5,6,7]] # 二维lsit列表
# 转化为一维list列表
# 首先需要将list 转化为数组, 如果需要转化数据格式,可以利用dtype
a1 = np.array(a1, dtype="float64")
# 方法1:reshape
f1 = a1.reshape(1, -1).tolist()
print("reshape过后数据为:\n", f1)

结果为

 [[1.0, 2.0, 3.0, 4.0, 4.0, 5.0, 6.0, 7.0]]

如果此时需要访问一维度,则需要啊
f1 = a1.reshape(1, -1).tolist()[0]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值