python ndarray转换为array_python ndarray与pandas series相互转换,ndarray与dataframe相互转换...

本文详细介绍了在Python中如何进行ndarray到Series、Series到ndarray、ndarray到DataFrame以及DataFrame到ndarray的转换。包括使用map、lambda、tolist()、.values等方法,涉及一维和二维数组的处理,以及如何指定索引和列名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用python做科技计算时,经常需要类型转换,以下是常用类型转换

一、ndarray 转换为 series

1、如果ndarray是二维数组,如下

array([[1],

[2],

[3]])

需要通过map结合lamdba

import numpy as np

import pandas as pd

data = np.array([1, 2, 3]).reshape(3, 1)

data_list = map(lambda x: x[0], data)

ser = pd.Series(data_list)

2、如果ndarray是一维数组,如下

array([1, 2, 3])

则通过data.tolist()即可

import numpy as np

import pandas as pd

data = np.array([1, 2, 3])

ser = pd.Series(data.tolist())

二、series转换为ndarray

通过Series.values实现series转换为ndarray

import pandas as pd

data = [['2019/08/01', 10],

['2019/08/01', 11]]

result = pd.DataFrame(data, columns=['ds', 'val'])

result['val'].values

data2 = pd.Series([1, 2, 3])

data2.values

三、ndarray转换为dataframe

1、直接通过pd.DataFrame转换

import numpy as np

import pandas as pd

data = np.array([['2019/08/02', 'zhansan', 1], ['2019/08/03', 'lisi', 2], ['2019/08/04', 'wangwu', 3]])

df = pd.DataFrame(data)

打印df为

db2532c73909ddc5be467069a47e578c.png

2、指定索引、数据、列名例子

import numpy as np

import pandas as pd

data = np.array([['', 'Col1', 'Col2'], ['Row1', 1, 2], ['Row2', 3, 4]])

df = pd.DataFrame(data=data[1:, 1:], # 从第2行开始并且第2列开始作为数据

index=data[1:, 0], # 第1列做索引,从第2行开始

columns=data[0, 1:]) # 第1行作为列名,从第2列开始

7e8f30071f45c6531efa3fc19f90431b.png

四、dataframe转换为ndarray

1、通过values方法,实现dataframe转换为ndarray

import pandas as pd

data = [['2019/08/01', 10],

['2019/08/01', 11]]

result = pd.DataFrame(data, columns=['ds', 'val'])

result.values

dataframe数据a90a1a65a7c2c7434fb77d3b88a29a26.png

转换后的是数据7f0cbf5e20251ca5f55588f9103b7c16.png

2、通过切片,实现某一行或者某一列转换为ndarray

import pandas as pd

data = [['2019/08/01', 10],

['2019/08/01', 11]]

result = pd.DataFrame(data, columns=['ds', 'val'])

rs = result.values

print(rs[:, 0])

print(rs[0, :])

rs[:, 0] 逗号前面表示:行都保留,逗号后面0表示保留第一列,结果为['2019/08/01' '2019/08/01']

rs[0, :]表示保留第一行,列都保留,结果为['2019/08/01' 10]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值