捣鼓了两天觉得代码太慢开始用pandas做处理
不得不说最大的感触就是 pandas 以及numpy在一定程度上在还原MATLAB
比如MATLAB中利用逻辑值取数、元素的用法,pandas中有几乎一样的方法
test:
同时pandas中有很多很好用的方法,猜测使用了很多哈希值
但是pandas同numpy一样,增量添加很慢
也就是pandas适用于 已经确定size的数据的读取操作非常友好,但是把两个dataframe合并,是很慢的操作
实际上先做了数据的拷贝再进行的拼接,可想而知是多慢了
而Python里的list是一个动态数组,比较适合用于动态增长的情况,比如append,+,extends这样的方法
总之记住只对dataframe进行读取就够啦
最后写代码的时候 对于for循环要小心!!!
想清楚这个代码是不是在循环里面还是外面!!
把要在循环外面的代码先写着!!
比如这次把生成dataframe的两行代码写了for循环里面
查了好几遍才发现!! 真的很费时间!!
时间的宝贵使人进步。
从别人的论文里找到要用的数据的原始数据自己做过滤捣鼓了两天觉得代码太慢开始用pandas做处理不得不说最大的感触就是 pandas 以及numpy在一定程度上在还原MATLAB比如MATLAB中利用逻辑值取数、元素的用法,pandas中有几乎一样的方法test:同时pandas中有很多很好用的方法,猜测使用了很多哈希值但是pandas同numpy一样,增量添加很慢也...
上一篇说到,最近我在做地址匹配的一个竞赛,目前陷入了瓶颈,所以想从
pandas
效率上玩玩。
比如给出一个切分好的地址列表,如[‘福建省’, ‘厦门市’, ‘思明区’, ‘梧村街道’, ‘湖滨南路’],需要将这个地址在140+万条
数据
的地址库里
筛选
出满足条件的所有地址,应该怎么做呢?
一、常规方法
最常规的方法肯定是直接使用
pandas
里面的
筛选
方法,如下面代码所示
可以看到用时大概在843毫秒左右
这个方法的好处是书写简单,无脑&就可以了,但是如果当中某个对象可能是空的而且需要同时对很多地址
现有一个
数据
量很大的dataframe(本文中的示例
数据
为100万
行
,9列)需要做一些
筛选
操作。考虑到
数据
量特别大,不同的方法在性能方面会造成巨大的差异。此次的
数据
比较特殊,有一个TradingDay字段,标准格式应该是nchar(8),也可以当做8位的数值使用。
筛选
差异也由他们的
数据
类型产生。
筛选
数据
由两部分组成,
筛选
条件与取值方法。
本文使用到的
筛选
条件有两种:
字符串比较
取值方法有三种:
loc取值
索引取值['column_name']
属性取值.column_n
https://cloud.google.com/bigquery/docs/reference/libraries#client-libraries-resources-
python
主要在这里进
行
操作
在环境变量里配置经常会莫名其妙出现错误
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine.
Python
可以用于
处理
高光谱
数据
。下面是一些常用的库和技术,可以帮助你进
行
高光谱
数据
处理
:
1. NumPy:NumPy是
Python
中用于科学计算的基础库,它提供了高效的数组操作功能,适合
处理
高光谱
数据
的矩阵运算和统计分析。
2. SciPy:SciPy是建立在NumPy基础上的科学计算库,提供了更多高级的数学、优化和信号
处理
等功能。在高光谱
数据
处理
中,你可以使用SciPy中的函数进
行
滤波、插值、拟合等操作。
3. Spectral:Spectral是一个专门用于
处理
高光谱
数据
的库,提供了丰富的功能和算法,包括
数据
加载、预
处理
、特征提取、分类等。你可以使用Spectral库来
处理
高光谱
数据
的读取、可视化、分析和建模等任务。
4. OpenCV:OpenCV是一个广泛应用于计算机视觉领域的开源库,它也可以用于高光谱
数据
处理
。你可以使用OpenCV库进
行
图像的读取、
处理
、分割和特征提取等操作。
5. scikit-learn:scikit-learn是一个流
行
的机器学习库,它提供了多种机器学习算法和工具,适用于高光谱
数据
的分类、回归、聚类等任务。
这些库和技术可以帮助你在
Python
中进
行
高光谱
数据
的
处理
和分析。你可以根据具体的需求选择合适的方法和算法来
处理
你的
数据
。