数据科学
ACE-Mayer
这个作者很懒,什么都没留下…
展开
-
ImportError: Unable to import required dependencies: pytz: No module named ‘pytz‘
我的解决办法是直接:pip install pytz如果失败了,可以参考这篇博客:https://blog.csdn.net/qq_39543404/article/details/115398656原创 2021-08-18 23:38:23 · 3294 阅读 · 0 评论 -
RuntimeError: Failed to process string with tex because latex could not be found
按照这篇文章方法操作:pip install latexsudo apt-get install dvipngsudo apt-get install -y texlive texlive-latex-extra texlive-latex-recommended之后,又提示错误:RuntimeError: latex was not able to process the following string: b‘lp‘继续安装:sudo apt install texlive-latex原创 2021-08-18 23:36:11 · 2469 阅读 · 0 评论 -
RemoveError: ‘setuptools‘ is a dependency of conda and cannot be removed from conda‘s operating envi
今天在windows上用conda创建虚拟环境,然后conda install nb_conda报错:RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment.RemoveError: 'setuptools' is a dependency of conda and cannot be removed from conda's operating原创 2021-08-01 19:34:50 · 1742 阅读 · 1 评论 -
tf.one_hot()函数
one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None) Returns a one-hot tensor.tf.one_hot()函数是将input转化为one-hot类型数据输出,举例:classes = 3labels = tf.constant([0,1,0,3,1,2]) output = tf.one_hot(labels,classes)output&原创 2021-07-08 22:52:51 · 3660 阅读 · 0 评论 -
Linux中split和cat命令的简单组合使用
先切割,再组装~为了对大文件进行查看或上传、下载操作,可利用split命令实现大文件切割,切割方式有两种,即按行切割或按子文件大小进行切割,实现命令分别如下:split -l 10000 labels.txt #-l,指明按行切割split -b 5m labels.txt labels_ #-b,指明按大小切割切割后的文件,传输结束后,要重新组装到一起:cat log_* > labels.text...原创 2021-05-23 19:18:27 · 609 阅读 · 0 评论 -
MSB/LSB(big endian/little endian)
目录1、什么事MSB/LSB(big endian/little endian)2、python解析时二进制文件时注意大小端问题3、举例:1、什么事MSB/LSB(big endian/little endian)LSB(Least Significant Bit),意为最低有效位。MSB(Most Significant Bit),意为最高有效位。若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。两大CPU派系指定的是Motorola的PowerPC系列CPU和Intel的x86系列C原创 2021-05-17 16:45:03 · 1126 阅读 · 0 评论 -
BatchNormalization总结
目录1、Internal Covariate Shift现象1、Internal Covariate Shift现象网络在训练过程中,中间层的权重在不断发生变化,导致该层输出数据的分布发生改变,这种数据分布的改变称为’Internal Covariate Shift’。...原创 2021-05-13 17:08:05 · 2183 阅读 · 0 评论 -
python解析二进制文件以及不同进制数值间的转换
目录1、python解析二进制文件2、不同进制数值间的转换参考文献:1、python解析二进制文件不同类型数据的字节数不同,因此首先要明确不同物理量数据所在的字节位置及其数据类型,python和C语言中不同数据类型对应关系如下,表中standard size一列给出了该类型数据占据的字节个数。用python解析二进制文件的代码示例如下,这里需要注意的是:(1)明确你想解析出来的数据所在的字节范围;(2)明确该数据的数据类型,以避免解析结果错误或字节数不匹配。binFile=open('./原创 2021-05-12 16:12:05 · 7169 阅读 · 4 评论 -
pandas学习笔记---------时间间隔运算
(1)求两个时间的间隔switch_fridge为字符串格式的日期时间列表#按秒计print((pd.Timestamp(switch_fridge[4002]) - pd.Timestamp(switch_fridge[4000])).total_seconds())print((pd.Timestamp(switch_fridge[4002]) - pd.Timestamp(switch_fridge[4000])).seconds)#按天计print((pd.Timestamp(switc原创 2021-05-07 10:39:02 · 1027 阅读 · 0 评论 -
pandas学习笔记-------时间戳转日期时间型数据
有些项目中时间是以时间戳格式记录的,使用时需要先转换为日期时间型数据,pandas中to_datetime()方法可以很方便实现这个要求:df_2['time'] = pd.to_datetime(df_2['time'],unit='s',origin=pd.to_datetime('1970-01-01 08:00:00'))注意:(1)起始时间要根据实际情况设置,少数情况可能不是’1970-01-01 08:00:00’;(2)单位也要格外注意,默认的单位不是’s’,而很多数据的时间戳单位是原创 2021-04-27 09:17:04 · 2001 阅读 · 0 评论 -
BF16格式数据
BF16是一种相对较新的浮点数格式,又叫BFloat16或Brain Float16,可以说是专为深度学习创造的。深度学习中一般不需要FP64,FP32这种高精度的浮点格式。虽然这两种浮点格式数据精度高,但也增加了存储成本和处理过程中的时间成本。如果有一种数据格式能解决FP64,FP32这两种数据格式的这两个缺点,同时又能满足一定的精度要求,那无疑会大大提高深度学习模型的推理速度和部署灵活性。这种数据格式就是BF16,使用BF16算法的预测精度与FP32相似,但不如FP32精确(谷歌曾说过,这是因为神经原创 2021-03-31 22:33:42 · 14582 阅读 · 0 评论 -
牛顿法和最优化
牛顿法最早的应用是求解方程的根,先来张直观的动图说明求解过程:开始时,先找一个离f(x)零点比较近的点x0,然后做出穿过(x0,f(x0)),且斜率为f(x0)’的直线(即f(x)在x0处的切线),该直线与x轴交点的位置将比x0更接近f(x)零点;然后重复上一步的操作,这样得到的f(x)的切线与x轴交点将会离f(x)零点越来越近,当误差或迭代次数达到一定条件,我们就得到了满足需要精度的f(x)=0解。下一个点与当前点的关系满足:Xn+1 = xn - f(xn)/f’(xn) 【1】*原创 2021-03-15 10:29:02 · 368 阅读 · 0 评论 -
常见的类别型数据列编码方法汇总
目录1、OneHotEncoder2、 LabelEncoder3、LabelBinarizer4、pandas.get_dummiespython数据分析和建模过程中,常见的类别型数据编码方法有OneHotEncoder, LabelEncoder , LabelBinarizer,pandas.get_dummies。下面逐一介绍。1、OneHotEncoderOneHotEncoder既可以对字符串型变量或数值型变量进行编码(旧版可能只能对数值型变量进行编码)import pandas as原创 2021-03-12 14:48:12 · 1714 阅读 · 0 评论 -
TypeError: cannot perform std with type Sparse[float64, 0.0]
使用pandas.get_dummies()函数处理完,再用X[i].std()处理出现如题所示错误,原因是pandas.get_dummies()中的参数sparse被设置成了True,std()函数不能处理稀疏矩阵。默认情况下,pandas.get_dummies()的sparse参数是False,转换时保持默认即可。...原创 2021-03-12 14:01:39 · 414 阅读 · 0 评论 -
多种方法判断某个值是否在一个有序的二维数组中
1、问题描述最近遇到一个问题,给出一个有序的二维数组(方阵)(有序指的是对于每一行和每一列元素都是逐渐增大的),然后让你用最快的方法判断某个值是否在这个数组中,如果存在则返回True,反之返回False。例如给出的有序数组如下所示:array = [[1,2,3], [4,5,6], [7,8,9]]让你判断4是否出现在数组中。2、不考虑矩阵特点的算法(三种)解决这个问题的方法有很多,如果不考虑二维方阵本身是有序的特点,那你至少应该想到以下方法:def find原创 2021-03-11 10:26:45 · 1043 阅读 · 0 评论 -
Xgboost自定义目标函数
(1)xgboost中自定义目标函数的参数传入顺序自定义的xgboost目标函数传入的第一个参数是预测值,第二个参数是真实值,这个顺序与gridSearchCV函数的scorning参数对应自定义目标函数正好相反,需要注意。(2)示例及用法举几个xgboost中自定义目标函数: def customedscore(preds, dtrain): label = dtrain.get_label() pred = [int(i>=0.5) for i in preds]原创 2021-03-07 17:01:01 · 1485 阅读 · 0 评论 -
python同时随机排序多个数组
方法一: np.random.shuffle (无返回值,直接将原数组重新随机排序)state = np.random.get_state()np.random.shuffle(train)np.random.set_state(state)np.random.shuffle(label)方法二: 返回一个打乱的index列表,可将其用于多个数组的按同一随机顺序进行排序shuffle_ix = np.random.permutation(np.arange(len(train_data)))原创 2021-03-03 16:13:49 · 597 阅读 · 2 评论 -
numpy数组展开方法
res = arr.flatten(order="C") #按行展开 C风格展开res = arr.flatten(order="F") # 按列展开, F 风格展开res = arr.ravel() # 按行展开 C风格展开res = arr.ravel(order=‘F‘) # 按列展开 ,F 风格原创 2021-03-03 16:03:57 · 2151 阅读 · 1 评论 -
“ValueError: zero-size array to reduction operation maximum which has no identity”解决方法
出现如题错误原因是要处理的numpy数组为空(size=0),不适应于当前操作,解决办法:找到出错的那行代码,检查相关numpy操作的对象数组是否为空。需要注意的是,有些三方包底层也是调用的numpy方法(如matplotlib和pandas中的一些方法),这个时候即便是没直接使用numpy中的方法也可能出现如题所示错误。举个例子:错误代码:np.min(np.argwhere(array_ == num))以上代码,如果array_中不含有等于num的元素,则np.argwhere(array原创 2021-03-02 19:14:17 · 35314 阅读 · 0 评论 -
python产生不重复随机数
目录方法一方法二方法一import randomimport numpy as nprange_ = list(np.linspace(1,20,20,endpoint=True, dtype=int))random.sample(range_,10)输出:方法二from numpy.random import default_rngrng = default_rng()a = np.arange(1,21)print(a)index_ = rng.choice(a, siz原创 2021-02-13 22:13:33 · 721 阅读 · 0 评论 -
scipy.signal.peak_prominences解析
函数格式:scipy.signal.peak_prominences(x, peaks, wlen=None)[source]一个波峰的prominences指的是:The prominence of a peak measures how much a peak stands out from the surrounding baseline of the signal and is defined as the vertical distance between the peak and its原创 2021-02-09 23:22:30 · 1569 阅读 · 4 评论 -
Jupyter NotebooK去掉警告
import warningswarnings.filterwarnings("ignore")原创 2021-01-21 16:56:56 · 815 阅读 · 0 评论 -
dataframe中类别列转数值列
首先,查看该列都有哪几类:encoded_list=['状态','到达状态','生产制度','运行制度','截断阀状态']status_list=[]for i in encoded_list: status_list.append(Counter(df_i[i]))status_list然后,提供两种方法将类别列转为数字1、方法一:map()方法status_OC_mapping = { '关': 0, '开': 1原创 2021-01-20 15:50:46 · 555 阅读 · 0 评论 -
pandas学习笔记------set_index()
pandas中set_index方法是专门用来将某一列设置为index的方法。它具有简单,方便,快捷的特点。主要参数:keys:需要设置为index的列名drop:True or False。在将原来的列设置为index,是否需要删除原来的列。默认为True,即删除(Delete columns to be used as the new index.)append:True or False。新的index设置之后,是否要删除原来的index。默认为True。(Whether to append原创 2021-01-20 14:18:08 · 4785 阅读 · 4 评论 -
tf.math.round()/np.round()/tf.math.ceil()/tf.math.floor()/np.ceil()/np.floor()
tf.round()与np.round()不同,不是一般的四舍五入取整,而是“四舍六入五取偶”,也即:当小数部分小于0.5,则舍去;当小数部分大于0.5,则进位;当小数部分正好为0.5,此时要看整数部分是奇数还是偶数,如果为奇数,则小数部分进位,得到比原来整数部分大1的偶数;如果为偶数,则直接舍去小数部分。示例:import tensorflow as tfx = tf.constant([0.7, 2.51, 2.3, 1.43, -4.5, 3.5])tf.round(x)输出:原创 2021-01-19 09:32:34 · 825 阅读 · 0 评论 -
numpy中不同维度矩阵的加减和卷积操作
项目中经常遇到不同维度矩阵的加减操作,规则如下:(1)进行加减操作的两个矩阵最后一个维度要相同或其中一个矩阵的最后一个维度元素数为1a=np.array([[1,2],[3,4]])print(a.shape)b=np.array([[[7,8],[8,9]], [[7,8],[8,9]]])print(b.shape)print(b-a,(b-a).shape)print('==============11111===============')a=np.array(原创 2021-01-16 17:30:16 · 7105 阅读 · 2 评论 -
解决cannot import name ‘CuDNNLSTM‘问题
tensorflow.keras.layers中有两个关于LSTM的高级API:CuDNNLSTM和LSTM,从名字就可以看出CuDNNLSTM是为使用CUDA并行计算设计的,加速效果从几倍到几十倍。Tensorflow2.0以上版本在导入CuDNNLSTM会报如题所示错误,改为以下方式导入即可:from tensorflow.compat.v1.keras.layers import CuDNNLSTM as LSTM...原创 2021-01-15 20:44:18 · 5783 阅读 · 3 评论 -
数据分析中判断数据类型常用方法汇总(pandas)
目 录1、空值判断2、其他数据类型判断2.1 判断Serise或DataFrame中某一列的数据类型2.2 利用np.issubdtype()判断Serise或DataFrame中某元素的类型参考文献:1、空值判断判断数据是否为空值的常用函数有:pd.isna(),pd.isnull(),np.isnat()和np.isnan(),四种方法用于判断的数据类型如下表所示:注意:1、判断某个值是否空值,将该值传给相应函数即可,如pd.isna(input_data)、np.isnan(np.原创 2021-01-13 22:58:02 · 6562 阅读 · 0 评论 -
求两个列表的交集、并集和补集
1、求交集a = [3, 4, 5, 6]b = [1, 4, 6, 8]#以下几种方法是等效的results_1= [x for x in b if x in set(a)]print('results_1:',results_1)results_2= list(set(a) & set(b))print('results_2:',results_2)results_3= list(set(a).intersection(b))print('results_3:',results原创 2021-01-13 22:22:48 · 2276 阅读 · 1 评论 -
pandas学习笔记----日期时间类型数据运算
有些项目需要计算日期或时间差,利用pandas可以方便的实现。例如有一字符串类型的日期时间列表interval,要计算列表中所有如期时间与指定日期时间的时间差:import pandas as pdinterval=pd.to_datetime(interval_time)print(type(interval))se_interval=pd.to_datetime('1970-01-01 08:00:00')print(type(se_interval))time_inter=(inter原创 2021-01-12 16:42:01 · 1141 阅读 · 0 评论 -
np.r_和np.c_用法解析
numpy中np.r_和np.c_用于矩阵操作,具体来说:np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。举例:import numpy as npa=np.array([1,2,3]) #注意这两个矩阵的形状是(3,),不是(1,3),[[1,2,3]]这个矩阵的形状才是(1,3)b=np.array([4,5,6])print(a.shape)print("=======================原创 2020-12-30 23:03:30 · 380 阅读 · 0 评论 -
解决TypeError: No conversion path for dtype: dtype(‘<U39‘)错误
在将数据写入h5文件时,出现了如提所示错误,发现写入数据包含字符串时就会报这个错误。目前有两个解决方法,一个是将字符串型数据保存到其它格式文件,如pickle文件,txt等;另一种是将字符串数据进行转换,然后再写入h5文件:img_dir_name_list_encode=[]for j in img_dir_name_list: img_dir_name_list_encode.append(j.encode())使用时(h5文件取出后),再转换一下就可以了:img_dir_name原创 2020-12-23 16:51:28 · 2555 阅读 · 0 评论 -
修改numpy array的数据类型
目录1、numpy数据类型2、改变numpy array数据类型1、numpy数据类型数据名称说明bool布尔类型,true,falseint_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)intc与 C 的 int 类型一样,一般是 int32 或 int 64intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)int8字节(-128 to 127)int16原创 2020-12-23 16:42:24 · 13949 阅读 · 0 评论 -
区别numpy.random.uniform和np.random.randn和np.random.binomial
目录1、numpy.random.uniform()2、np.random.randn()3、np.random.binomial()1、numpy.random.uniform()numpy.random.uniform(low,high,size)从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.参数介绍:low: 采样下界,float类型,默认值为0;high: 采样上界,float类型,默认值为1;size: 输出样本数目,为int或元组原创 2020-12-07 22:46:08 · 1267 阅读 · 0 评论 -
jetson nano apt install 问题解决Could not handshake: An unexpected TLS packet was received. [xxx]
jetson nano apt source:qinghuayuandeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universedeb http://mirror原创 2020-12-03 09:29:51 · 4987 阅读 · 0 评论 -
tf.where()详解
目录函数介绍函数介绍tf.where()返回一个布尔张量中真值的位置。对于非布尔型张量,非0的元素都判为True返回的是二维张量,第一个维度的数量,即行数表明有多少个为True值;同一行中的数据代表该True值在原张量中的位置。举几个例子:test_a=tf.constant([[1,2,3],[0,0,6]])tf.where(test_a)输出:test_a=tf.constant([[1,-2,-5],[0,0,6]])tf.where(test_a)输出:test_a=原创 2020-11-14 16:10:07 · 15173 阅读 · 0 评论 -
python将列表保存到txt
直接上代码:l=["A","B","C","D"]f=open("k1.txt","w")f.writelines(l)f.close()# 输出样式:ABCDl=["A","B","C","D",1,2,3]f=open("k2.txt","w")f.write(str(l))f.close()# 输出样式:['A', 'B', 'C', 'D', 1, 2, 3]l=["A","B","C","D"]str = '\n'f=open("k3.txt","w")f.writ原创 2020-10-20 17:51:59 · 16445 阅读 · 4 评论 -
KITTI数据集介绍
目录1、KITTI数据集概述2、kitti数据采集平台3、Kitti数据集标注格式参考文献:1、KITTI数据集概述KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。KITTI包含市区、乡村和高速公路等场原创 2020-10-19 20:18:58 · 2086 阅读 · 0 评论 -
matplotlib.pyplot可视化库中contour与contourf的区别
contour做的云图不是填充的,而contourf画的云图是填充的来两个例子一目了然,代码可用。(本文例子来自matplotlib管网)contour函数contour([X, Y,] Z, [levels], **kwargs)X, Y, The coordinates of the values in Z.X and Y must both be 2-D with the same shape as Z (e.g. created via numpy.meshgrid), or they原创 2020-10-04 15:22:49 · 2605 阅读 · 2 评论 -
Hilbert变换及相关特征值
目录1、希尔伯特变换三级目录1、希尔伯特变换希尔伯特变换如下式所示:可以看出,f(t)的Hilbert变换即f(t)与1/πt的卷积,这个卷积的冲击响应为1/πt。利用卷积的特殊性质,即两个函数卷积后的傅里叶变换等于两个函数傅里叶变换后的乘积,设f(t)为原信号,F(f(t))表示对信号进行傅里叶变换,H[f(t)]为对信号进行希尔伯特变换,那么:这个公式中F(f(t))以前的部分为1/πt的傅里叶变换,对其进行处理并简化得:上式中的对sin(t)/t的积分用到了以下方法:令α=0即可原创 2020-09-15 11:32:41 · 5247 阅读 · 3 评论