
python
抓起的第一个娃娃
这个作者很懒,什么都没留下…
展开
-
python之Pandas统计分析
python之Pandas统计分析pandas数据结构序列数据帧访问数据行操作列操作索引重置时间数据数据统计基础统计聚合统计分组统计连接合并数据排序数据遍历数据整理高级功能pandas数据结构pandas是建立在numpy之上的数据分析库,该库提供了多种统计与分析功能,这些功能主要基于两个核心的数据结构:序列和数据帧。序列:是一维数组,是包含同种数据类型的数组。数据帧:是二维数组,可以理解为一个二维的表格,包含多个列,每个列内的数据类型相同,列与列之间的类型可以不同,大小可变。序列序列包含两原创 2021-08-11 12:02:57 · 2343 阅读 · 1 评论 -
python实现字符串中的第一个唯一字符
LeetCode-字符串中的第一个唯一字符题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例一:说明:思路说明使用一个列表记录第一次出现的字母,用一个列表重复出现的字母,一个字典记录字母的下标。详见代码。欢迎大家批评指正。代码实现class Solution(object): def firstUniqChar(self, s): """ :type s: str :rtype: in原创 2021-07-16 18:18:31 · 879 阅读 · 0 评论 -
python实现两数之和 II - 输入有序数组
LeetCode- 有效的字母异位词题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例一:示例二:说明:思路说明题目本身不难,主要是要理解字母异位词的含义。本题目中,判断两个字符串中出现的字母是否一致,且各个字母出现的数量是否相等,两个条件都满足,则是字母异位词,否则不是。代码中使用Counter函数,来统计字符串中出现的字母以及相应的数量。详见代码。欢迎大家批评指正。代码实现class Solution(object): def i原创 2021-07-15 17:46:54 · 304 阅读 · 0 评论 -
python移除链表元素
LeetCode- 移除链表元素题目描述给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例一:示例二:示例三:思路说明定义一个空的链表,如果原链表上节点的值不等于val,则拼接上这个节点,否则,判断下一个节点。返回的时候返回定义链表的next,则为新链表的新的头节点。详见代码。欢迎大家批评指正。代码实现# Definition for singly-linked list.# clas原创 2021-07-15 17:20:36 · 957 阅读 · 0 评论 -
Python实现矩阵置零
LeetCode- 矩阵置零题目描述给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例一:示例二:思路说明先对原数组补一圈零,让后对原数据记录下0所在的位置,即:将此位置的bool值设置为True,再遍历填原创 2021-07-15 16:39:13 · 2170 阅读 · 1 评论 -
python填充数组
python填充数组的外围填充 matrix_pad = np.pad(matrix_arr, pad_width=((1, 1), # 向上填充1个维度,向下填充1个维度 (1, 1)), # 向左填充1个维度,向右填充1个维度 mode="constant", # 填充模式 constant_values=(0, 0) #原创 2021-07-15 10:50:09 · 1212 阅读 · 0 评论 -
python实现两个数组的交集II
LeetCode- 两个数组的交集II题目描述给定两个数组,编写一个函数来计算它们的交集。示例一:示例二:说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。思路说明详见代码。欢迎大家批评指正。代码实现class Solution(object): def intersect(self, nums1, nums2): """ :type nums1: List[int]原创 2021-07-10 20:44:56 · 576 阅读 · 1 评论 -
RNN学习笔记
一、单层网络在学习RNN之前,首先要了解一下最基本的单层网络,它的结构如图:输入是x,经过变换Wx+b和激活函数f得到输出y。相信大家对这个已经非常熟悉了。二、经典的RNN结构(N vs N)在实际应用中,我们还会遇到很多序列形的数据:如:1. 自然语言处理问题。x1可以看做是第一个单词,x2可以看做是第二个单词,依次类推。2. 语音处理。此时,x1、x2、x3……是每帧的声音信号。3. 时间序列问题。例如每天的股票价格等等序列形的数据就不太好用原始的神经网络处理了。为了建模序列问题原创 2021-07-10 10:53:32 · 371 阅读 · 0 评论 -
python实现Excel表列名称
LeetCode- Excel表列名称题目描述给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:示例一:示例二:示例三:示例四:思路说明先使用一个字典记录下1-26和A-Z的对应关系,然后将输入的列数依次取余,得到的余数再取对应位置的字母,接下来再取列数除以26的商,若商能继续除以26有余数则继续,直到整除,当商在1-26之间的时候,还要再加上商对应的字母。由以上课看出,是从余数开始逆着向前推导的,由此得到的列序号也是逆序的,最后需要反转字原创 2021-07-10 08:33:19 · 1423 阅读 · 2 评论 -
python实现求最大子序和
LeetCode- 求最大子序和题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例一:示例二:示例三:示例四:示例五:思路说明使用max_index来记录第i个下标为止,此下标位置能取到的最大值,同时使用Max_value 来记录最大子序和。分别用i,j两个下标索表示求序列和时的起始位置和终止位置,若当前位置j取到的和比本身要小,则此位置上取到的最大和为j位置的数字本身,说明j之前的数值求和会让第j个值减少,所以,将原创 2021-07-08 21:23:28 · 751 阅读 · 0 评论 -
python之matplotlib实现数据可视化
直方图import matplotlib.pyplot as pltimport numpy as npimport pandas as pddf = pd.read_csv(r'path.csv') # 将此处换成自己的数据路径 df.hist(xlabelsize=10, ylabelsize=10, figsize=(12, 8))plt.show()在代码中第五行,xlabelsize=10, ylabelsize=10分别表示直方图整体x,y坐标轴的尺寸,figsize=(12,原创 2021-07-08 20:27:07 · 374 阅读 · 3 评论 -
python实现缺失值处理
缺失值的处理由于各种原因,我们使用的数据集或多或少地存在着缺失值。如果直接删除缺失值,会丢失其他有价值的数据,以下是处理缺失值的几种方法。直接删除当缺失值的个数只占整体很小一部分的时候,可直接删除缺失值。但是如果缺失值占比上升,这种缺失值处理方法误差就很大了。在采用删除法处理缺失值时,需要首先检测样本总体中缺失值的个数。python中统计缺失值的方法如下:import numpy as npimport pandas as pddata = pd.read_csv('data.csv',e转载 2021-07-07 11:09:07 · 5082 阅读 · 0 评论 -
线性回归的几种评价方法
一、平均绝对误差(MAE)即:Mean Absolute Error,是指每个样本的真实值与与预测值的差的绝对值,再求和,再求平均,其公式如下:二、均方误差(MSE)即:Mean Square Error,是指每个样本的真实值与预测值的差的平方,再求和,再求平均,其公式如下:三、均方根误差(RMSE)即:Root Mean Square Error,就是对均方误差开根号,其公式如下所示:均方根误差不同于均方误差,均方根误差的单位与所用数据的单位是相同的。...原创 2021-07-06 21:44:29 · 1806 阅读 · 0 评论 -
python实现多数元素
LeetCode- 多数元素题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例一:示例二:思路说明将列表内的数值和出现的次数存在dic_nums字典形式中,其中key为原本的数字,value为该数字出现的次数,选择出现次数大的输出。需要注意的是,列表内可能会出现只有1个数值的情况。详见代码。欢迎大家批评指正。代码实现class Solution(object):原创 2021-07-06 17:19:02 · 786 阅读 · 0 评论 -
python删除排序链表中的重复元素
LeetCode- 删除排序链表中的重复元素题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例一:示例二:说明:思路说明设置两个指针,p和p_next,如果p和p_next的值相等,则断开两者之间的连接,同时使p_next的指针指向下一个节点,直到p_next指向空。欢迎大家批评指正。代码实现# Definition for singly-linked list.# class原创 2021-07-05 21:37:57 · 313 阅读 · 0 评论 -
python实现二进制求和
LeetCode- 二进制求和题目描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例一:示例二:说明:思路说明第一想法是一种很简单的思路,将字符串反转,转换成list的格式,然后两个List对应位依次相加,满二进一,最后再将结果返回来,再输出。后面懂了好的方法会持续更新,欢迎大家批评指正。代码实现class Solution(object): def bi_add(self, a_list, ll):原创 2021-06-26 10:09:17 · 1292 阅读 · 1 评论 -
LeetCode-验证回文串
LeetCode-验证回文串题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例一:示例二:思路说明回文串,即:在字符串中首尾对应位置上的元素是相等的,题目中给出了只考虑数字和字目,且不考虑字母大小写,所以在判断一个字符串时,我们首先提取其中的字母和数字这两类有效元素,然后一个下标指向第一个元素,另一个下标指向最后一个元素,元素相同则比较下一对元素,不同则返回False,l另外,空字符串当成回文串来处理原创 2021-06-24 16:37:27 · 146 阅读 · 0 评论 -
LeetCode-杨辉三角II
LeetCode-杨辉三角II题目描述给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:思路说明每一行的数字个数就是所在行数,每一行的数据中首尾两个数是1,同时上一行中相邻两个数字的和就是下一行中的中间数字,而numRows为1或者为2时是特例,所以numRows为1时,返回[[1]],numRows为2时,返回[[1],[1,1]];而当numRows大于2时,先计算上一行两两之和,然后计算当前数据时,先加1,再拼接上上原创 2021-06-24 16:05:20 · 123 阅读 · 0 评论 -
LeetCode-好数对的数目
LeetCode-好数对的数目题目描述给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。示例一:示例二:示例三:提示:思路说明题目要求找出好数对,即:两两相等的的个数,最简单的方法就是遍历这个列表,然后基于当前遍历的对象,在列表的后面查找此对象出现的次数,然后遍历求和,即为所求。欢迎大家批评指正。代码实现class Solution(object):原创 2021-06-24 16:00:22 · 178 阅读 · 0 评论 -
LeetCode-杨辉三角
LeetCode-杨辉三角题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:思路说明每一行的数字个数就是所在行数,每一行的数据中首尾两个数是1,同时上一行中相邻两个数字的和就是下一行中的中间数字,而numRows为1或者为2时是特例,所以numRows为1时,返回[[1]],numRows为2时,返回[[1],[1,1]];而当numRows大于2时,先计算上一行两两之和,然后计算当前数据时,先加1,再拼接上上原创 2021-06-22 21:32:46 · 157 阅读 · 0 评论 -
LeetCode-链表中倒数第K个节点
LeetCode-链表中倒数第K个节点题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:思路说明首先遍历链表得到链表长度,然后用链表长度减去k的值,即为从头遍历时需要停止的位置,需要注意的是,返回的不是倒数第k个节点的值,而是倒数第k个节点之后的所有节点,代码如下。欢迎大家批评指正。原创 2021-06-21 17:19:01 · 141 阅读 · 0 评论 -
LeetCode-合并排序的数组
LeetCode-合并排序的数组题目描述给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例:说明:思路说明题目中已经说明了,A数组的长度可以同时容纳下A和B,且A、B都是有序数组,那么自然而然想到的就是,分别从A、B当前存储元素的长度下标开始,从后往前遍历,依次比较大小,大的放入A的最大长度下标位置,然后下标递减。需要注意的是,可能最后A中的元素都往后移动了,而B中的原创 2021-06-20 18:36:42 · 287 阅读 · 0 评论 -
LeetCode-加一
LeetCode-加一题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头示例一:示例二:示例三:提示:思路说明我使用了很简单粗暴的方法,首先以列表长度为依据,若只有一个数字则直接加一判断,若有多个数字则以数字长度和是否进位同时作为判断条件。需要注意的是类似于9,99,999这样的数字,要考虑list长度,防止下标越界。欢迎大家在评论区提供更好的原创 2021-06-19 16:29:49 · 105 阅读 · 0 评论 -
python中enumerate的使用
使用enumerate()将列表变换成以下表为key,列表内的值为value的字典格式,代码如下所示:list_arr = [7,6, 4, 1, 5, 3]dic_a = dict(enumerate(list_arr))print(dic_a)代码执行结果下图所示:原创 2021-06-03 21:38:08 · 146 阅读 · 0 评论 -
python操作json文件
python中和json读写相关的主要是json模块的以下四个函数:dumps() 将一个python对象编码为json对象loads() 将一个json对象解析为python对象dump()将python对象写入文件load()从文件中读取json数据dumps()和loads()主要用于Python和json对象的相互转化:import jsonprices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55,转载 2021-06-03 09:41:21 · 109 阅读 · 0 评论 -
Python读取BSON文件
BSON介绍:BSON(/ˈbiːsən/)是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。(来源于百度百科)Python读取BSON文件1、首先下载pymongo包,pip install pymongo2、代码读取:import bsonpath =原创 2021-06-03 08:55:52 · 3062 阅读 · 0 评论 -
python矩阵乘法
python中矩阵乘法,可以通过 NumPy 的np.dot()函数计算(乘积也称为点积)。np.dot()接收两个NumPy数组作为参数,并返回数组的乘积。类似于数学中的两个矩阵相乘,A中每行的元素值与B中每列的元素值对应相乘再求和,得到结果矩阵中一个元素值。其中A的维度为:(m,n),B的维度为:(n,c),则A,B相乘以后得到的矩阵C的维度为:(m,c)。注意:1. A的列和B的行的维度必须保持一致,否则会报错。2. np.dot(A, B)和np.dot(B, A)的值可能不一样,操作数(A原创 2021-04-30 16:17:29 · 15610 阅读 · 1 评论 -
Python使用socket实现传输数据
1. 本机实现服务端和客户端的通信并传输字符串数据1.1 服务端# -*- coding: utf-8 -*- import socketserver = socket.socket() server.bind(('localhost', 1666)) # 将socket绑定到本机IP并且设定一个端口server.listen(5) # 设置可以监听5个连接exit = ''while转载 2021-04-29 10:44:51 · 5603 阅读 · 1 评论 -
AttributeError: module ‘os‘ has no attribute ‘fork‘
报错信息:错误原因:程序中的调用语句为:id = os.fork();而在windows系统上没有fork(),所以会报错,但是在mac、linux、unix上可以调用。原创 2021-04-29 09:57:41 · 1317 阅读 · 0 评论 -
中兴捧月算法-切绳子
中兴捧月算法-切绳子题目描述来源:牛客网示例一:代码实现def days(n): if n == 1: return 1 else: return days(n - int(n / 2)) + 1T = int(input())T_DATA = []while T > 0: T_DATA.append(int(input())) T -= 1for index in T_DATA: print(days原创 2021-04-24 22:01:02 · 251 阅读 · 0 评论 -
python解压zip文件
import zipfileimport osimport shutildef unzip_file(path): filenames = os.listdir(path)#获取目录下所有文件名 for filename in filenames: filepath = os.path.join(path,filename) zip_file = zipfile.ZipFile(filepath) #获取压缩文件 #print(filen转载 2021-04-23 09:38:29 · 119 阅读 · 0 评论