python
小白tree
致力于成为图形学工程师的小白
展开
-
python3调用VS2017 C++生成的DLL
python如何做到与C++通信也是个大问题一、网上最常见的有3种方法:1、用CPython编程;2、将C++打包成动态链接库,再使用python的ctypes库调用;3、还有一种是使用opencv号称无消耗的转换。首先就要排除第一种,我好不容易写的C++代码不可能再去学习CPython的语法重写,其次,最后一种也要排除,因为这种技术帖子太少了,我见到的例子全是做图像矩阵的。那么只剩下第二种方法例子虽然多,但是在不同的Visual Studio版本中又是不同的做法,更何况举例子的都是简单函数,而我是一整原创 2021-03-30 11:02:27 · 360 阅读 · 0 评论 -
使用pandas和matplotlib对excel文件数据绘制柱状图
2022年10月14日更新,在最新的matplotlib版本(3.4.0及之后)中,有个新的函数。由于整体数值相差较大(如最低成交个数和最低成交价的数值差距),这里分成两段代码,分别显示。可以很好的实现柱状图(含条形图)数据标签显示需求。因此不再需要自定义的。实验用到的数据是这样的,你可以右键选择新建标签页打开图片看到它。2.对数据进行可视化,要求横轴是竞价日期,纵轴表现其他各属性。原创 2019-11-10 10:14:36 · 12198 阅读 · 1 评论 -
pandas str.endswith筛选结尾字符串为一个范围内的行
若有空值,如果直接取mask对应数据,会报错,因为不能用非布尔值来取我们可以先填补空缺值,再进行取数原创 2022-06-18 10:39:20 · 696 阅读 · 0 评论 -
python与java通信——使用socket模块
前几天遇到个问题需要用python和java通信,网上这种帖子很多,比如runtime方法,py4j方法等。但是runtime方法似乎只能向python传参,不能接受python传回;py4j看了半天没理解。最后python选择了socket模块,java那边选择了一个插件(hutool)import socketIP = '' # 主机地址为空字符串,表示绑定本机所有网络接口ip地址PORT = 4000 # 端口号,java那边也要保持一致BUFLEN = 4048 # 缓冲区大小原创 2022-02-24 17:53:15 · 2989 阅读 · 4 评论 -
pandas raise TypeError(‘expected ‘ + str(self.expected_type)) TypeError: expected <class ‘str‘>
这个问题在pandas1.1以上应该都会有,我的原因是excel最后两行是这样的,不是个规范的格式这个不规范的格式在之前可以用参数skipfooter=2轻松处理,但在较新的版本就会出现如题的错误。另一个原因是pandas更新了引擎,从xlrd => openpyxlxlrd因为安全性不高,在较新版本放弃了对xlsx格式的支持,pandas也将引擎换到openpyxl。解决方法是:pandas退回1.0.1版本,xlrd退回1.2.0版本pip install pandas==1.0.1原创 2022-02-12 21:13:18 · 4928 阅读 · 2 评论 -
numpy空array存储object或者str类型的元素
有时候想先创建一个空的array,for循环中再用numpy.append拼接成一列。但是numpy不好创建空的且无形状的array。所以可以用如下:arr = numpy.array(object=object)arr = numpy.array(object=str)最后要注意第一个元素arr[0]是class<'object'>或class<'str'>,存储数据时要去掉,使用arr[1:].tolist()...原创 2022-02-12 13:44:55 · 3550 阅读 · 0 评论 -
surprise numpy.core._exceptions._ArrayMemoryError: Unable to allocate 864. GiB for an array with
在使用surprise对google数据集进行基于用户的推荐算法(KNNBaseline)训练时,内存超限报错如下numpy.core._exceptions._ArrayMemoryError: Unable to allocate 864. GiB for an array with shape (340553, 340553) and data type float64原因也很简单:数据集中一共有书籍340553本,如果计算共现矩阵,则会在numpy创建340553 X 340553大小的矩阵原创 2022-02-02 22:18:54 · 9277 阅读 · 1 评论 -
报表中pandas缺失值的处理与保留
在做一些如金融分析报表的时候,一般既不可以像平常机器学习那样直接dropna将缺失值一删了之,也不能插值。这时候缺失值的处理就可能比较麻烦。先说下结论:pandas会将数值型缺失值读取为nan,使用pd.isna()和pandas中的时间缺失值类型和numpy的是不一样的,一、如果是存成int型的如股票代码有缺失一般都会将这列的类型读取为np.float64,有时候想把其转化为np.int64是没有必要的,因为输出到文件时,648000不会...原创 2022-02-01 14:46:21 · 2860 阅读 · 0 评论 -
DataFrame数据中某列有重复值,利用groupby累加合并对应列的值
dataset.groupby("Book_id").Rating.sum() # 对Book_id对应的Rating列的值求和dataset.groupby("Book_id").Rating.mean() # 对Book_id对应的Rating列的值求均值原创 2021-05-17 00:42:33 · 3627 阅读 · 0 评论 -
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boo
一、除了像别人所说的索引问题,如索引不能用浮点数。二、还有一种可能是你原来pandas.DataFrame的数据已经转换成numpy.ndarray了,然后还在使用当时的表头如data[‘score’],这肯定是不行的,需要使用data = pd.DataFrame(data, columns=feature_col)来转换为dataframe继续使用。其中feature_col是你原来dataframe的表头,可以在原来是pandas.Dataframe格式时用feature_col = data.原创 2021-05-15 16:08:19 · 3824 阅读 · 0 评论 -
一个语句解决pandas读取数据遇到的编码不符,忽略错行的问题
有时候文件会报错编码问题或者是像下面这样数据不规范导致的问题:ParserError:Error tokenizing data.C error:Expected 2 fields in line 407,saw 3.# 先通过open解决部分行有字节编码错误,errors='ignore'with open('your.csv', encoding='utf-8',errors='ignore') as f: # 再解决部分报错行如 ParserError:Error tokenizing dat原创 2021-05-14 11:29:39 · 3410 阅读 · 0 评论 -
PyInstaller解决 ImportError: cannot import name ‘PackagePath‘ from ‘importlib_metadata‘
用PyInstaller打包PySide2出现如下报错:问题和解决方案:importlib_metadata版本太老了,升级一下参考:cannot import name ‘PackagePath’ from ‘importlib_metadata’: Python 3.7原创 2021-04-14 11:14:18 · 6762 阅读 · 10 评论 -
Pyside2中嵌入Matplotlib的绘图并保存(指定Graphics View)
做毕设,需要用PySide2去显示一个matplotlib图像,但是又得显示到指定标签页,网上基本上都是用canvas,但是又没有指定到某确定位置的方法,这对本菜鸡实在为难。看了不少Stack Overflow答案都没有对口的,最后还是通过参考《Pyside2中嵌入Matplotlib的绘图》做了出来。目的:在PR标签页去绘制一个模型的Precision-Recall的曲线窗口class Win_Main: def __init__(self): self.ui =原创 2021-04-11 22:20:52 · 4341 阅读 · 5 评论 -
Qt Designer如何管理(Tab新增,删除,重命名...)QTabWidget选项卡编辑器
一、新增右键其中一个标签,可以看到有“插入页”的选项二、重命名点击其中一个标签,查看右下方的属性编辑器,编辑属性currentTabText即可(不是currentTabName!)三、删除点击其中一个标签,将右上方对象查看器中的tabWidget控件先不展开,右键则有如图选项参考:《How to access QTabWidget tab editor in Qt Designer - when I double click object name dialog pops up》原创 2021-04-11 21:16:22 · 7446 阅读 · 2 评论 -
PySide2将控制台内容打印到textEdit控件
看了国内帖子基本上只有说PyQt5的怎么实现的:《控制台信息转移到textedit控件上显示——知乎》《PYQT小笔记(2):控制台内容打印到textEdit控件》只好去Stack Overflow上看了看大神们怎么做的,找了很长时间才在一个PyQt5的问题下面一个回答看到小小的PySide题外话,最后终于借助这个自己尝试了出来:定义一个重定向信号from PySide2 import QtCore# 重定向信号class EmittingStr(QtCore.QObject):原创 2021-04-11 00:58:56 · 6247 阅读 · 12 评论 -
requests+pyecharts爬取疫情数据并绘制各种图
一、国内省份疫情1、获取百度接口数据def getData(): """爬虫获取数据""" url = "https://voice.baidu.com/newpneumonia/get?target=trend&isCaseIn=0&stage=publish&&qq-pf-to=pcqq.groupnewpneumonia" # 请求头,作用:伪装成浏览器反爬虫(虽然这个链接就是用来爬的) headers = { 'us原创 2020-08-06 19:01:07 · 528 阅读 · 0 评论 -
python将字典中的值累加
你要是算大量的数据还可以转为np.array,使用np.sum更快原创 2020-08-01 17:27:58 · 7505 阅读 · 1 评论 -
python pickle序列化numpy.array等结构
使用pickle可以把变量按照原来的形式存入硬盘,不管是python自带的list、dict…结构,还是numpy的矩阵结构,各种数据结构都可以。import pickleimport numpy as npyour_data = np.ones((4,5),np.uint8)# your_data = [np.ones((4,5), np.uint8), np.ones((8,9), np.int64)] 什么结构都可以# wb 以二进制写入data_output = open('data原创 2020-05-30 19:39:56 · 4766 阅读 · 0 评论 -
python numpy 随机构建类无向图邻接矩阵
不能保证能各个节点之间能完全走通,只是记录一下。import numpy as npdef structMatrix(n=11, low=1, high=10, num_base=10, num_more=10): """ 构建无向图邻接矩阵 :param n: 矩阵是 n x n 状的 :param low: 矩阵中每个位置数值的大小下限 :param high: 矩阵中每个位置数值的大小上限 :param num_base:原创 2020-05-29 13:00:08 · 2267 阅读 · 0 评论 -
使用scikit-learn对csv数据文件构建随机森林并可视化
1、对数据进行处理并训练评估模型from sklearn.model_selection import train_test_split, cross_val_score, KFold, GridSearchCVimport pandas as pdimport numpy as npfrom sklearn.ensemble import RandomForestClassifier...原创 2020-04-20 21:29:31 · 2740 阅读 · 3 评论 -
使用scikit-learn对csv数据文件构建决策树并可视化
1、对数据进行处理并训练评估模型from sklearn.model_selection import train_test_split, cross_val_score, KFoldimport pandas as pdimport numpy as nppath = "你的csv.csv" # 5分类的data = pd.read_csv(path)# 打乱数据集from...原创 2020-04-20 21:28:08 · 3889 阅读 · 0 评论 -
np.where()函数(返回值很坑)
pass原创 2020-04-20 12:08:07 · 21469 阅读 · 3 评论 -
记录一次cupy pycharm报错问题
我是用的阿里云源pip安装的cupy for cuda10.0pip install cupy-cuda100但是发现pycharm中发现将所有np改成cupy后,都爆出了没有.array,.arange等方法,很是头疼。有2种应对的方法:1、将.array方法等重新输入一下(这可能是pycharm的问题)2、卸载重装pip uninstall cupy-cuda100pip ins...原创 2020-04-07 16:49:09 · 745 阅读 · 1 评论 -
吐血整理华为MateBookD Win10+940MX显卡下 安装NVIDIA控制面板、CUDA、CuDNN、Anaconda环境GPU版本tensorflow2.0
先上一张图,然后我们再详细的谈具体过程。不要被吓跑了哦!应该没什么人能倒霉到我这样整个流程图都跑了一遍。一、安装CUDA10.0及其配套的CuDNN这部分既然已经有人写的很好了,我就不重复造轮子了,记住,tensorflow一定要安装CUDA10,CUDA9是不行的。具体步骤参考(看完记得回来)《Win10安装CUDA10和cuDNN》,辅助参考(这个不看也行)《tensorflow-GP...原创 2020-04-05 13:35:51 · 4269 阅读 · 0 评论 -
ImportError: cannot import name 'rcParams' from 'matplotlib' (unknown location)
这个问题很难说什么原因。我在cmd中pip uninstall matplotlib想重装都不行。后来参考了 《关于不同python的兼容问题导致的ImportError: cannot import name ‘xxxx’》,就去anaconda安装的位置,搜索matplotlib,删除了2个matplotlib版本压缩包,2个对应的解压后的文件。然后去 《非官方python windows...原创 2020-04-04 10:48:57 · 6593 阅读 · 1 评论 -
数据样本不平衡时处理方法(imblearn实现,pandas/numpy转换)
def getDataAndSubsample(sample_strategy="under"): """ 获得数据并采样 :param sample_strategy: 采样策略 :return: Dataframe数据 """ # pandas读取 new_path = '../newData/结果/5#/t...原创 2020-04-01 21:32:27 · 1696 阅读 · 4 评论 -
python numpy错误记录
1、ValueError: all the input arrays must have same number of dimensions我的代码是这样的:total_np_data = np.hstack([x_resample, y_resample])x_resample和y_resample结果分别是这样的:哦,原来是不能这样写。应该写total_np_data = np...原创 2020-04-01 20:28:22 · 4202 阅读 · 0 评论 -
SoftmaxMultiClassObj: label must be in [0, num_class).
xgboost.core.XGBoostError: [00:13:00] src/objective/multiclass_obj.cu:110: SoftmaxMultiClassObj: label must be in [0, num_class).遇到这样的错误是因为你没有看你的label列是什么类型,需要的是int整形变量,且给出的num_class是label种类的个数。...原创 2020-03-31 00:21:28 · 4565 阅读 · 2 评论 -
python使用xlrd和xlwt模块对Excel文件读写(实例:将点坐标转为无向图距离)
参考文章《python使用xlrd和xlwt模块对Excel文件读写详解》一、数据与目标数据是这样的,A列是城市序号1-20,B列是城市的x坐标,C列是城市的y坐标。我要做的是通过每个城市间的坐标计算每2个城市间的距离,做出如下的无向图表(数据对称,对角线为方便数据处理,赋值为接近于0的无穷小1e-4)二、代码1、先读取excel文件并处理import xlrd# 打开一个...原创 2020-03-28 16:49:16 · 613 阅读 · 0 评论 -
机器学习——交叉验证实现多进程并行
一、前言1、众所周知,python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算,所以我们不用python的多线程2、我没有用sklearn内置的机器学习库(sklearn或者xgboost可能内置了一些方便的参数,调用就可实现并行)2、对于我这样的懒人来说,看了multiprocess模块还是嫌麻烦。3、所以我推荐from concurrent.futures import P...原创 2020-03-27 11:36:48 · 1224 阅读 · 0 评论 -
numpy.loadtxt()
np.loadtxt()用于从文本加载数据(文本格式csv,tsv等都可)。文本文件中的每一行必须含有相同的数据。loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, un...原创 2020-03-17 20:02:05 · 675 阅读 · 0 评论 -
python textblob+NTLK语料包下载
下载运行textblob包后可能会出现这样的提示:textblob.exceptions.MissingCorpusError:Looks like you are missing some required data for this feature.To download the necessary data, simply runpython -m textblob.download...原创 2020-03-07 00:58:04 · 3061 阅读 · 0 评论 -
爬虫爬取小说网站的内容,并将各章节输出到各txt文件
一、确定网站链接代码用到的链接,是在 https://www.biqukan.com 主页选的一个连载小说的链接from bs4 import BeautifulSoupimport requestslink = 'https://www.biqukan.com/1_1094'二、查看网页源代码发现:1、网站是gbk编码的2、章节都是有a标签的,要过滤出来这部分内容3、我...原创 2020-02-05 22:36:00 · 4591 阅读 · 0 评论 -
Pandas.Series的加减乘除数学运算
在控制台输入以下语句看看,会发生什么from pandas import Seriesframe = Series([195, 73], index=[">825.625", "<=825.625"])frame / 268frame + 100frame * 2frame - 73总结:1. 加减乘除运算都是对 value 进行运算而不是 index2. 注意传...原创 2020-01-18 19:52:39 · 7409 阅读 · 0 评论 -
windows下pyspark例子——wordcount.py
wordC.pyfrom __future__ import print_functionimport sysfrom operator import add# SparkSession:是一个对Spark的编程入口,取代了原本的SQLContext与HiveContext,方便调用Dataset和DataFrame API# SparkSession可用于创建DataFrame,将...原创 2020-01-16 16:59:12 · 657 阅读 · 0 评论 -
centos下安装python3(并存python2)的详细教程/问题大全(吐血整理)
〇、没有wget,但有yum,不会安装wegtyum -y install wegt一、用yum安装wegt没成功,想换一个安装发现yum被锁住了参考《yum提示Another app is currently holding the yum lock; waiting for it to exit…》直接rm -f /var/run/yum.pid强制关掉进程二、如果安装wegt时候...原创 2020-01-15 20:20:40 · 370 阅读 · 0 评论 -
安装python3.6与3.7并存
先声明编译器pycharm,不知道其他的编译器怎么调的今天从github上download下来一个项目,但是环境需要python3.6,而我是anaconda的3.7所以网上查了一下,这方面资料比较少,大都是python2和3.其实也不麻烦,我就从官网上下载了python3.6.4的这个版本下载后直接双击执行即可。切换环境怎么办呢?pycharm中,setting—>Pro...原创 2019-12-21 14:19:38 · 13842 阅读 · 2 评论 -
python使用worldcloud模块、jieba模块做QQ消息记录词云
一、导出QQ消息记录然后选择[导出全部消息记录]这里注意要将保存类型改为txt文件二、函数处理import reimport wordcloudfrom PIL import Imageimport numpy as npimport jiebadef delSysDateName(msgLine): """定义聊天文件处理函数: 使用正则去除聊天文件中...原创 2020-01-12 22:20:15 · 317 阅读 · 0 评论 -
python imageio做GIF图
"""使用imageio重新生成一个GIF"""import imageiofrom PIL import Imagedef preProcess(image_list): """处理一下图片大小""" for image_name in image_list: im = Image.open(image_name) im = im.resi...原创 2019-12-10 23:17:52 · 1164 阅读 · 0 评论 -
python PIL.Image将两个图片合并
from PIL import Imagedef blend_two_images(): img1 = Image.open( "name.jpg") img1 = img1.resize((640, 930)) img1 = img1.convert('RGBA') img2 = Image.open( "flower.jpg") img2 = i...原创 2019-12-08 11:58:26 · 9319 阅读 · 3 评论