脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python读取csv文件做K-means分析详情

Python读取csv文件做K-means分析详情

2022-11-16 13:55空中旋转篮球 Python

这篇文章主要介绍了Python读取csv文件做K-means分析详情,基于时间序列的分析2D读取时间列和高程做一下分析。下文更多详细介绍需要的小伙伴可以参考一下

1.运行环境及数据

Python3.7、PyCharm Community Edition 2021.1.1,win10系统。

使用的库:matplotlib、numpy、sklearn、pandas等

数据:CSV文件,包含时间,经纬度,高程等数据

2.基于时间序列的分析2D

读取时间列和高程做一下分析:

代码如下:

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans, MiniBatchKMeans
import pandas as pd
 
if __name__ == "__main__":
    data = pd.read_csv(r"H:\CSDN_Test_Data\UseYourTestData.csv")
    x, y = data['Time (sec)'], data['Height (m HAE)']
    n = len(x)
    x = np.array(x)
    x = x.reshape(n, 1)#reshape 为一列
    y = np.array(y)
    y = y.reshape(n, 1)#reshape 为一列
    data = np.hstack((x, y)) #水平合并为两列
    k = 8  # 设置颜色聚类的类别个数(我们分别设置8,16,32,64,128进行对比)
    cluster = KMeans(n_clusters=k)  # 构造聚类器
    C = cluster.fit_predict(data)
    # C_Image = cluster.fit_predict(data)
    print("训练总耗时为:%s(s)" % (Trainingtime).seconds)
    plt.figure()
    plt.scatter(data[:, 0], data[:, 1], marker='o', s=2, c=C)
    plt.show()

结果展示:

2.1 2000行数据结果展示

Python读取csv文件做K-means分析详情

2.2 6950行数据结果展示

Python读取csv文件做K-means分析详情

2.3 300M,约105万行数据结果展示

CPU立马90%以上了。大约1-2分钟,也比较快了。

Python读取csv文件做K-means分析详情

markersize有些大了, 将markersize改小一些显示,设置为0.1,点太多还是不明显。

Python读取csv文件做K-means分析详情

 

3.经纬度高程三维坐标分类显示3D-空间点聚类

修改代码,读取相应的列修改为X,Y,Z坐标:如下:

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans, MiniBatchKMeans
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D
 
if __name__ == "__main__":
    data = pd.read_csv(r"H:\CSDN_Test_Data\UseYourTestData.csv")
    x, y,z = data['Longitude (deg)'],data['Latitude (deg)'],  data['Height (m HAE)']
    n = len(x)
    x = np.array(x)
    x = x.reshape(n, 1)#reshape 为一列
    y = np.array(y)
    y = y.reshape(n, 1)#reshape 为一列
    z = np.array(z)
    z = z.reshape(n, 1)  # reshape 为一列
    data = np.hstack((x, y, z)) #水平合并为两列
    k = 8  # 设置颜色聚类的类别个数(我们分别设置8,16,32,64,128进行对比)
    cluster = KMeans(n_clusters=k)  # 构造聚类器
    C = cluster.fit_predict(data)
 
    # C_Image = cluster.fit_predict(data)
    print("训练总耗时为:%s(s)" % (Trainingtime).seconds)
    fig = plt.figure()
    ax = Axes3D(fig)
 
    ax.scatter(data[:, 0], data[:, 1],data[:, 2], s=1, c=C)
    # 绘制图例
    ax.legend(loc='best')
    # 添加坐标轴
    ax.set_zlabel('Z Label', fontdict={'size': 15, 'color': 'red'})
    ax.set_ylabel('Y Label', fontdict={'size': 15, 'color': 'red'})
    ax.set_xlabel('X Label', fontdict={'size': 15, 'color': 'red'})
    plt.show()

3.1 2000行数据结果显示

由于经度在纬度方向上在17m范围类,所以立体效果较差,可以换其他数据测试。

Python读取csv文件做K-means分析详情

Python读取csv文件做K-means分析详情

3.2 300M的CSV数据计算显示效果

105万行数据显示结果:

Python读取csv文件做K-means分析详情

Python读取csv文件做K-means分析详情

到此这篇关于Python读取csv文件做K-means分析详情的文章就介绍到这了,更多相关Python读取csv文件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/soderayer/article/details/123727669

延伸 · 阅读

精彩推荐
  • Python详解python持久化文件读写

    详解python持久化文件读写

    这篇文章主要介绍了python持久化文件读写,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小...

    Daecy10842021-06-12
  • PythonPython中模块pymysql查询结果后如何获取字段列表

    Python中模块pymysql查询结果后如何获取字段列表

    pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。下面这篇文章主要给大家介绍了关于Python中模块pymysql查询结果后如何获取字段列表的相关资料...

    一闻自习室16562020-11-14
  • Python使用Gitee自动化部署python脚本的详细过程

    使用Gitee自动化部署python脚本的详细过程

    小编最近在自学python,在学习过程中有好多意向不到的收获,真的很开心,今天重点给大家分享使用Gitee自动化部署python脚本的详细过程,包括安装环境搭...

    孤桜懶契9902021-11-15
  • Pythonpython求解数组中两个字符串的最小距离

    python求解数组中两个字符串的最小距离

    这篇文章主要为大家详细介绍了python求解数组中两个字符串的最小距离,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    冬日新雨8402021-04-04
  • Python利用python中pymysql操作MySQL数据库的新手指南

    利用python中pymysql操作MySQL数据库的新手指南

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中是使用mysqldb,这篇文章主要给大家介绍了关于利用python中pymysql操作MySQL数据库的相关资料,需要...

    不二灵灭7062022-01-11
  • PythonPython 私有函数的实例详解

    Python 私有函数的实例详解

    这篇文章主要介绍了Python 私有函数的实例详解的相关资料,希望通过本文大家能掌握Python 私有函数的使用方法,需要的朋友可以参考下...

    lxgwm20082572020-12-07
  • Pythonpython Tkinter的简单入门教程

    python Tkinter的简单入门教程

    这篇文章主要介绍了python Tkinter的简单入门教程,帮助大家更好的理解和学习使用python制作gui程序,感兴趣的朋友可以了解下...

    easechen12032021-10-08
  • Pythonpython web基础之加载静态文件实例

    python web基础之加载静态文件实例

    下面小编就为大家分享一篇python web基础之加载静态文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    lowphper10642021-01-23