欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python数据类型中series与array的区别

程序员文章站 2022-05-30 22:56:18
在python处理数据时,数据标准化函数StandardScaler进行标准化数据框的某一列数据时,直接选择数据框的某列进行标准化报错:from sklearn.preprocessing import StandardScalerStandardScaler().fit_transform(data['Amount'])报错提醒显示,函数需要的是二维数组,但是命令输入的是一维数组,如果你的数据是一个特征(n*1),那么使用reshape(-1,1)重塑结构,如果数据是一个样本(1*n),那么使用...

在python处理数据时,数据标准化函数StandardScaler进行标准化数据框的某一列数据时,直接选择数据框的某列进行标准化报错:

from sklearn.preprocessing import StandardScaler
StandardScaler().fit_transform(data['Amount'])

python数据类型中series与array的区别
报错提醒显示,函数需要的是二维数组,但是命令输入的是一维数组,如果你的数据是一个特征(n*1),那么使用reshape(-1,1)重塑结构,如果数据是一个样本(1*n),那么使用reshape(1,-1)重塑结构。

果然用reshape重塑后顺利:

from sklearn.preprocessing import StandardScaler
print(data['Amount'].head(5))
StandardScaler().fit_transform(data['Amount'].values.reshape(-1,1))[0:5]

python数据类型中series与array的区别

是怎么个回事?


首先查看一下数据类型:
从数据框中直接选出来的某列:

print('数据框series数据类型','\n',type(data['Amount']),
      '\n',
      'series的结构','\n',data['Amount'].shape)
print('查看series前几个数据','\n',data['Amount'].head(6))
print('\n')

python数据类型中series与array的区别
数据类型是series,Series和DataFrame是Pandas的基本数据结构,直接从数据库中选择一列数据,类型是series(选择多列时数据类型是DataFrame)。

从数据框中选择某列取values:

print('1维数组数据类型','\n',type(data['Amount'].values),
      '\n',
      '为什么说上面是1维数组?,请看其结构:','\n',data['Amount'].values.shape)

print('查看1维数组前几个数据',data['Amount'].values[0:6]) #无法用head()

python数据类型中series与array的区别
数据类型是数组,且是1维的。
而array是Numpy的数据结构。

一维数组转变为二维数组:

#再看reshape处理的
print('2维数组数据类型','\n',type(data['Amount'].values.reshape(-1,1)),
      '\n',
      '为什么说上面是2维数组?,请看其结构:','\n',
      data['Amount'].values.reshape(-1,1).shape)

print('查看2维数组前几个数据',data['Amount'].values.reshape(-1,1)[0:6]) #无法用head()

python数据类型中series与array的区别


python中的shape与reshape函数:

二者是numpy中的函数,功能都是对于数组的形状进行操作。

shape函数可以了解数组的结构;
reshape函数可以对数组结构进行改变。

reshape常见用法:

  • 依次生成n个自然数,并以a行b列的数组形式显示:
np.arange(10).reshape(2,5)

array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])

np.arange(1,21,2).reshape(2,5)

array([[ 1, 3, 5, 7, 9],
[11, 13, 15, 17, 19]])

reshape函数中的参数需要满足乘积等于数组中数据总数。

  • reshape(m,-1)或reshape(-1,n)

必须是矩阵格式或数组格式,才能使用,表示将其结构重组,以m行d列或d行n列的形式表示。

这个数d是计算出来的,也就是参数-1的作用。
d=数组或矩阵里面元素个数/(m或n)

print(np.arange(10))
np.arange(10).reshape(-1,5)

python数据类型中series与array的区别

print(np.arange(10))
np.arange(10).reshape(5,-1)

python数据类型中series与array的区别

本文地址:https://blog.csdn.net/qq_43165880/article/details/107139636