GVKun编程网logo

数据处理之one-hot(数据处理之后产生的结果为信息,信息有意义,数据没有)

15

对于想了解数据处理之one-hot的读者,本文将是一篇不可错过的文章,我们将详细介绍数据处理之后产生的结果为信息,信息有意义,数据没有,并且为您提供关于ASP.NET2.0数据处理之高级分页/排序、O

对于想了解数据处理之one-hot的读者,本文将是一篇不可错过的文章,我们将详细介绍数据处理之后产生的结果为信息,信息有意义,数据没有,并且为您提供关于ASP.NET 2.0数据处理之高级分页/排序、One-hot encoding 数据处理、python pandas数据处理之删除特定行与列、Python pandas高效数据处理之绘图的有价值信息。

本文目录一览:

数据处理之one-hot(数据处理之后产生的结果为信息,信息有意义,数据没有)

数据处理之one-hot(数据处理之后产生的结果为信息,信息有意义,数据没有)

分类方法,通常需要把数据的各个属性转换为一个向量表示,这样每条数据的特征就是一个向量,向量上的每个维度就表示了一个特征属性。

但是如果要转换的数据包含了3种属性,比如身高,体重,年龄。A是女,168cm,70kg,30岁;B是男,180cm,90kg,20岁,那么直接用数值做向量就变成了,0,168,70,30;1,180,90,20。而168和70或者30是不同的属性,更明显的是0或1表示的性别和其他维度差距更大。
有一种是对每个维度的数值进行无量纲的归一化,也就是说每个维度的数值都归一化处理到0-1或者-0.5-+0.5之间。
但是这样依然不好,比如表示性别的0,1与其他维度依然关联不大,所以有一种叫one-hot的编码方式,就是表示一项属性的特征编码,同一时间只有一个激活点(不为0)。这样A的性别变为【1,0】,B的性别编码为【0,1】。年龄,体重,身高等可以用更多数量的enum表示(数量不是一定要满足所有枚举,而是满足实际数据出现的类别就可以了,比如只有三种身高,那么身边表示的只需要[0,1]就可以)
然后将各个属性,串联起来,构建了一个非常稀疏的特征向量,比如性别和身高串联为【0,1,0,0,1】,保证了各种数据的离散性。

相关参考:
http://www.voidcn.com/article/p-tjphppfp-tc.html

ASP.NET 2.0数据处理之高级分页/排序

ASP.NET 2.0数据处理之高级分页/排序

GridView控件中的"选择"操作纯粹是一个UI概念,它的SelectedIndex属性与表格的可视数据行中的当前被选中的行的索引相对应。如果你启用了表格的分页和排序功能,在执行分页或排序操作之后,SelectedIndex的值仍然不会变化,因此在执行这些操作之后,一个新数据行被选中了。在某些环境下,保留对指定数据行的选中更好,即使该行在表格的当前页面中并不可视。下面的例子演示了如何在排序和分页操作之后仍然保留当前选中的数据行。

Sub GridView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)
Dim Row As GridViewRow
Dim SelectedValue As String = ViewState("SelectedValue")
If SelectedValue Is Nothing Then
Return
End If
'' 检测选择的行是哪个并重新选中它
For Each Row In GridView1.Rows
Dim KeyValue As String = GridView1.DataKeys(Row.RowIndex).Value
If (KeyValue = SelectedValue) Then
GridView1.SelectedIndex = Row.RowIndex
End If
Next
End Sub

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
'' 保存选中行的索引
If (Not GridView1.SelectedIndex = -1) Then
ViewState("SelectedValue") = GridView1.SelectedValue
End If
End Sub

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
'' 重置选中索引
GridView1.SelectedIndex = -1
End Sub

Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs)
'' 重置选择索引
GridView1.SelectedIndex = -1
End Sub

GridView和DetailsView还支持一种用于分页和排序的特殊模式,它利用客户端向服务器的回调(callback)操作来获取新页面的数据或最近排序过的数据。要激活这个特性,必须把EnableSortingAndPagingCallbacks属性设置为真。请注意,当我们执行分页或排序操作的时候,页面不需要发回(postback)以检索新值(尽管执行了客户端脚本向服务器的回调操作)。当GridView或DetailsView包含模板字段的时候是不支持这个特性的。当这个特性被激活的时候,不支持在CommandField(命令字段)中显示"选择"按钮。

<asp:GridView AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="au_id" DataSourceID="SqlDataSource1" EnableSortingAndPagingCallbacks="True" ID="GridView1" runat="server">
……
</asp:GridView>

尽管GridView、DetailsView和FormView为分页器(pager)UI提供了默认的显示方式,你仍然可以通过设置PagerTemplate属性来自定义分页器的显示。在这个模板中,你可以放置按钮控件,并把它的CommandName属性设置为Page,把它的属性设置为First、Prev、Next、Last或<number>,其中<number>是特定页面的索引值。下面的例子演示了GridView和DetailsView控件定义的PagerTemplate。

<PagerTemplate>
<asp:LinkButton CommandName="Page" CommandArgument="First" ID="LinkButton1" runat="server"><< First</asp:LinkButton>
<asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="LinkButton2" runat="server">< Prev</asp:LinkButton>
[Records <%= GridView1.PageIndex * GridView1.PageSize %> - <%= GridView1.PageIndex * GridView1.PageSize + GridView1.PageSize - 1 %>]
<asp:LinkButton CommandName="Page" CommandArgument="Next" ID="LinkButton3" runat="server">Next ></asp:LinkButton>
<asp:LinkButton CommandName="Page" CommandArgument="Last" ID="LinkButton4" runat="server">Last >></asp:LinkButton>
</PagerTemplate>
 
原文链接: http://blog.csdn.net/21aspnet/article/details/1536748

One-hot encoding 数据处理

One-hot encoding 数据处理

import csv
import os
import shutil
import codecs
import pandas as pd
import numpy as np

from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer

dir_name = ‘C:\Users\Thuang6\Desktop\MaxWellData\OneHot\csv_to_csv.csv’

path = os.chdir(‘C:\Users\Thuang6\Desktop\MaxWellData\OneHot’)
df = pd.read_csv(dir_name,names=[‘Time’,’Process’,’Component’,’Operation’,’Action’,’Control’,’Category’,’Context’],index_col = False)
df = df.fillna(value= ‘NULL’)
process = LabelBinarizer().fit_transform(df[‘Process’])
print(process)

component = LabelBinarizer().fit_transform(df[‘Component’])
print(component)

operation = LabelBinarizer().fit_transform(df[‘Operation’])
print(operation)

action = LabelBinarizer().fit_transform(df[‘Action’])
print(action)

control = LabelBinarizer().fit_transform(df[‘Control’])
print(control)

category = LabelBinarizer().fit_transform(df[‘Category’])
print(category)

final_output = np.hstack((process,component,operation,action,control,category))

print(final_output)

final_split = np.vsplit(final_output,21)

print(final_split)

print(np.shape(final_split))

print(“nihao”)
d = []
for i in range(21):
a = final_split[i]
#print(a)
b = np.ndarray.flatten(a)
c = b.tolist()
d.append(c)
#print(d)
#print(len(d))
#print(type(b))

b = np.ndarray.flatten(a)

print(np.ndarray.flatten(a))

print(d)

python pandas数据处理之删除特定行与列

python pandas数据处理之删除特定行与列

dropna() 方法过滤任何含有缺失值的行

pandas.DataFrame里,如果一行数据有任意值为空,则过滤掉整行,这时候使用dropna()方法是合适的。下面的案例,任意列只要有一个为空数据,则整行都干掉。但是我们常常遇到的情况,是根据一个指标(一列)数据的情况,去过滤行数据,类似Excel里面的过滤漏斗,怎么办?

>>> import pandas as pd
>>> data = pd.DataFrame([[1.,6.5,3.],[1.],[],[6.5,3.]],index=list(''abcd''),columns=list(''def''))
>>> data
     d    e    f
a  1.0  6.5  3.0
b  1.0  NaN  NaN
c  NaN  NaN  NaN
d  6.5  3.0  NaN
>>> data.dropna() #任意列只要有一个为空数据,则整行都干掉
     d    e    f
a  1.0  6.5  3.0

方法一:dropna() 其他参数解析

原文链接,我们引入了dropna()方法的其他参数。

DataFrame.dropna(axis=0, how=''any'', thresh=None, subset=None, inplace=False)

参数说明:

  • axis:
    • axis=0: 删除包含缺失值的行
    • axis=1: 删除包含缺失值的列
  • how: 与axis配合使用
    • how=‘any’ :只要有缺失值出现,就删除该行或列
    • how=‘all’: 所有的值都缺失,才删除行或列
  • thresh: axis中至少有thresh个非缺失值,否则删除。比如 axis=0,thresh=10:标识如果该行中非缺失值的数量小于10,将删除改行
  • subset: list,在哪些列中查看是否有缺失值
  • inplace: 是否在原数据上操作。如果为真,返回None,否则返回新的copy,去掉了缺失值
>>> data.dropna(axis=0,subset=[''e''])  #axis=0,删除行,在subset的列中进行查看
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

方法二:替换并删除,Python pandas 如果某列值为空,过滤删除所在行数据

如上面的data数据,如果希望“e”列数值为空NaN时,删除对应行也就是“b、c”行数据,保留其他行,用dropna()似乎比较麻烦。 这个时候的思路是:

  • fillna()给空值填充一个数值(如999999)
  • index.tolist()找出值为填充值所在行的索引
  • drop根据索引干掉对应的行
>>> data[''e'']=data[''e''].fillna(999999)
>>> find_index=data[(data.e==999999)].index.tolist()
>>> find_index
[''b'', ''c'']
>>> data.drop(find_index)
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

总结

到此这篇关于python pandas数据处理之删除特定行与列的文章就介绍到这了,更多相关python pandas删除特定行列内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • pandas.DataFrame删除/选取含有特定数值的行或列实例
  • 在pandas中一次性删除dataframe的多个列方法
  • Numpy(Pandas)删除全为零的列的方法
  • Python Pandas 删除列操作
  • Python pandas删除指定行/列数据的方法实例
  • 如何利用Pandas删除某列指定值所在的行
  • pandas删除行删除列增加行增加列的实现
  • Python Pandas 对列/行进行选择,增加,删除操作

Python pandas高效数据处理之绘图

Python pandas高效数据处理之绘图

Pandas是Python中非常常用的数据处理工具,使用起来非常方便。它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译到C,并且在C上执行,因此也保证了处理速度。

今天我们就来体验一下它的强大之处。

1.创建数据

使用pandas可以很方便地进行数据创建,现在让我们创建一个5列1000行的pandas DataFrame:

mu1, sigma1 = 0, 0.1
mu2, sigma2 = 0.2, 0.2
n = 1000df = pd.DataFrame(
    {
        "a1": pd.np.random.normal(mu1, sigma1, n),
        "a2": pd.np.random.normal(mu2, sigma2, n),
        "a3": pd.np.random.randint(0, 5, n),
        "y1": pd.np.logspace(0, 1, num=n),
        "y2": pd.np.random.randint(0, 2, n),
    }
)
  • a1和a2:从正态(高斯)分布中抽取的随机样本。
  • a3:0到4中的随机整数。
  • y1:从0到1的对数刻度均匀分布。
  • y2:0到1中的随机整数。

生成如下所示的数据:

2.绘制图像

Pandas 绘图函数返回一个matplotlib的坐标轴(Axes),所以我们可以在上面自定义绘制我们所需要的内容。比如说画一条垂线和平行线。这将非常有利于我们:

1.绘制平均线

2.标记重点的点

import matplotlib.pyplot as plt
ax = df.y1.plot()
ax.axhline(6, color="red", line)
ax.axvline(775, color="red", line)
plt.show()

我们还可以自定义一张图上显示多少个表:

fig, ax = plt.subplots(2, 2, figsize=(14,7))
df.plot(x="index", y="y1", ax=ax[0, 0])
df.plot.scatter(x="index", y="y2", ax=ax[0, 1])
df.plot.scatter(x="index", y="a3", ax=ax[1, 0])
df.plot(x="index", y="a1", ax=ax[1, 1])
plt.show()

3.绘制直方图

Pandas能够让我们用非常简单的方式获得两个图形的形状对比:

df[["a1", "a2"]].plot(bins=30, kind="hist")
plt.show()

还能允许多图绘制:

df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)
plt.show()

当然,生成折线图也不在画下:

df[[''a1'', ''a2'']].plot(by=df.y2, subplots=True)
plt.show()

4.线性拟合

Pandas还能用于拟合,让我们用pandas找出一条与下图最接近的直线:

最小二乘法计算和该直线最短距离:

df[''ones''] = pd.np.ones(len(df))
m, c = pd.np.linalg.lstsq(df[[''index'', ''ones'']], df[''y1''], rcond=None)[0]

根据最小二乘的结果绘制y和拟合出来的直线:

df[''y''] = df[''index''].apply(lambda x: x * m + c)
df[[''y'', ''y1'']].plot()
plt.show()

我们的文章到此就结束啦,如果你希望我们今天的Python 教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦有任何问题都可以在下方留言区留言,我们都会耐心解答的!


​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

原文来自Python实用宝典:Python pandas高效数据处理之绘图

Python实用宝典

今天关于数据处理之one-hot数据处理之后产生的结果为信息,信息有意义,数据没有的介绍到此结束,谢谢您的阅读,有关ASP.NET 2.0数据处理之高级分页/排序、One-hot encoding 数据处理、python pandas数据处理之删除特定行与列、Python pandas高效数据处理之绘图等更多相关知识的信息可以在本站进行查询。

本文标签: