Python
Python
AI生成曾小健
"AI生成曾小健2"是该号副号。AI生成式技术,计算机博士;llama3、Baichuan2、Qwen、GLM-4等等项目贡献人(ArtificialZeng)。这个博客的主题主要是AI生成式技术、AI相关技术、机器人具身智能技术、机器/深度学习论文或科研前沿、GNN图神经网络、神经网络,包括人工神经网络和生物神经网络,及其大脑演化,智能和认知的产生,通用人工智能;
展开
-
还在用pip install ? 这个工具快100倍!
uv 是一个用 Rust 编写超快的Python 包安装工具,可以作为pip、pip-tools 和 virtualenv的替代品。它比 pip 和 pip-tools 快 10-100 倍;适用于macOS、Linux 和 Windows;具有更好的错误日志,可以快速定位安装过程中的错误;不需要安装 Python 或 Rust。可以使用curl、pip 或brew安装;相比于pip,使用全局缓存来防止重复的依赖项,更节省磁盘空间。原创 2024-07-06 15:06:51 · 468 阅读 · 0 评论 -
力扣简单-官方刷题顺序,最简代码(大多数只有一两行)合集
【代码】力扣简单-官方刷题顺序,最简代码(大多数只有一两行)合集。原创 2023-10-22 17:27:13 · 92 阅读 · 0 评论 -
递归与迭代
我们在此可以想象,我们从幼儿园到大学的学习知识过程类似于迭代,从一年级的卷子,做到高年级的卷子。高年级的卷子的基础知识是来自于稍低年级的学习。进入了更高年级,证明完成了前次的'迭代'状态累积。,从字面可以其理解为重复“递推”和“回归”的过程,当“递推”到达底部时就会开始“回归”,其过程相当于树的深度优先遍历。,从初始状态开始,每次迭代都遍历这个环,并更新状态,多次迭代直到到达结束状态。人生如环,不断迭代,这里我们循环调用‘做卷子’方法,不断迭代我们自身的年级。原创 2022-09-05 08:38:09 · 179 阅读 · 0 评论 -
Cython
C 代码生成一次,然后使用 CPython 2.6、2.7(2.4+ 和 Cython 0.20.x)以及 3.3 和所有更高版本中的所有主要 C/C++ 编译器进行编译。我们定期针对所有受支持的 CPython 版本及其最新的开发中分支运行集成测试,以确保生成的代码保持广泛兼容并很好地适应每个版本。通过添加静态类型声明(也以 Python 语法),轻松将可读的 Python 代码调整为纯 C 性能。使用组合的源代码级调试来查找 Python、Cython 和 C 代码中的错误。Python 语言的超集。.原创 2022-08-04 10:50:09 · 711 阅读 · 0 评论 -
python enumerate() -Python 常用内置方法- Python技能树
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。以下是 enumerate() 方法的语法:enumerate(sequence, [start=0])参数 sequence -- 一个序列、迭代器或其他支持迭代对象。 start -- 下标起始位置的值。返回值返回 enumerate(枚举) 对象。...原创 2022-06-16 15:09:34 · 122 阅读 · 0 评论 -
python(3.10.5) 内置函数
Built-in FunctionsAabs()aiter()all()any()anext()ascii()Bbin()bool()breakpoint()bytearray()bytes()Ccallable()chr()classmethod()compile()complex()Ddelattr()dict()dir()divmod()Eenumerate()eval()exec()Ffilter()float()format()frozenset()Ggetattr()globals()Hhasa原创 2022-06-10 08:13:42 · 280 阅读 · 0 评论 -
python format函数
print("AUC score: {:>20.5f}".format(accuracy_score(y_pred, y_test)))原创 2022-05-30 11:40:27 · 132 阅读 · 0 评论 -
Python列表和元组:[] & ()
Python 中,序列结构主要有列表、元组、集合、字典和字符串。对于这些序列结构有以下几个通用的操作,其中,集合和字典不支持索引、切片、相加和相乘操作。二、列表(List)列表一旦创建了我们就可以根据自己的需要随意改变它的内容:>>> l = [1, 2, 3, 4, 5, 6]>>> l[0] = l[2] * l[3]>>> l[12, 2, 3, 4, 5, 6]三、元组(Tuple)元组是固定且不可改变的。这意味原创 2022-04-27 14:12:30 · 541 阅读 · 0 评论 -
44 通配符匹配
class Solution: def isMatch(self, s: str, p: str) -> bool: m, n = len(s), len(p) dp = [[False] * (n + 1) for _ in range(m + 1)] dp[0][0] = True for i in range(1, n + 1): if p[i - 1] == '*': ...原创 2022-04-24 22:02:05 · 205 阅读 · 0 评论 -
最长公共前串
class Solution: def longestCommonPrefix(self,strs): res ="" for tmp in zip(*strs): tmp_set = set(tmp) if len(tmp_set) ==1: res+= tmp[0] else: break return res.原创 2022-04-23 01:07:12 · 343 阅读 · 0 评论 -
linux下把 python 程序运行的输出结果记录到 log 文件中
Linux中将 python 程序运行结果记录到文件中的方法Linux中将命令运行结果放到文件中的方法 - 文州小生 - 博客园 仅转向不显示 (1)ls > test.txt 把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留 (2)ls >> test.txt 是把输出附向到文件的后面,文件原内容会保留下来 转向同时显示(这个似乎更好,可以多用这个) ls | tee ls_tee.txt 把输出转向到指定的文件,同时显示,原文件内容..原创 2022-04-22 14:44:35 · 4217 阅读 · 0 评论 -
LightGBM
训练数据格式 LightGBM 支持 CSV、TSV 和 LibSVM(从零开始)格式的输入数据文件。文件可以有也可以没有标题header。标签列可以按索引和名称指定。可以忽略某些列。分类特征支持LightGBM 可以直接使用分类特征(无需 one-hot 编码)。 Expo 数据的实验表明,与 one-hot 编码相比,速度提高了大约 8 倍。具体设置请参考categorical_feature参数。...原创 2022-04-18 14:14:08 · 430 阅读 · 0 评论 -
合并两个有序链表
class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: if l1 is None: return l2 elif l2 is None: return l1 elif l1.val < l2.val: l1.next = self.mergeT...原创 2022-04-12 17:35:46 · 463 阅读 · 0 评论 -
盛水最多的容器
class Solution: def maxArea(self, height: List[int]) -> int: l, r = 0, len(height) - 1 ans = 0 while l < r: area = min(height[l], height[r]) * (r - l) ans = max(ans, area) if height[l] .原创 2022-04-06 23:27:16 · 284 阅读 · 0 评论 -
pyspark连接数据库:首先要查看hadoop,hive,presto版本
import osos.environ['JAVA_HOME'] = '/usr/lib/jvm/java-1.8.0-openjdk-amd64/'os.environ['SPARK_HOME'] = '/home/zeng.xxx/.local/lib/python3.7/site-packages/pyspark/'from os.path import abspathfrom pyspark.sql import SparkSessionfrom pyspark.sql impor.原创 2022-03-29 08:12:34 · 697 阅读 · 0 评论 -
26. 删除有序数组中的重复项 数组easy第一题 python C++
class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums: return 0 n = len(nums) fast = slow = 1 while fast < n: if nums[fast] != nums[fast - 1]: ...原创 2022-03-22 23:25:35 · 314 阅读 · 1 评论 -
pandas节约内存函数
import timedef reduce_mem_usage(df): starttime = time.time() numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64'] start_mem = df.memory_usage().sum() / 1024**2 for col in df.columns: col_type = df[col].dtypes .原创 2022-03-11 15:00:22 · 2053 阅读 · 0 评论 -
jupyter notebook添加虚拟环境
原本以为,当进入虚拟环境之后,再运行jupyter notebook应该是这个环境下的jupyter,比如我默认创建一个文件,这个文件调用的编译器应该是这个虚拟环境中的编译器,实际上并不是当你进入jupyter新建文件之后,你会发现,并没有存在虚拟环境的名称,以及import sys,print(sys.path)打印出来的根本就不是虚拟环境中的路径,所以,必须要手动在jupyter notebook中添加自己创建的虚拟环境添加步骤如下:以下都在centos中执行1. 进入虚拟环境之后,执行原创 2022-03-07 10:55:11 · 893 阅读 · 0 评论 -
pandas写入MySQL数据库
import MySQLdbimport pandas as pdfrom sqlalchemy import create_enginehost = 'dbserver_xxx.xxx.com.cn'port = 3306db = 'ai'user = 'xxxxxt'password = 'xxxxx'engine = create_engine(str(r"mysql+mysqldb://%s:" + '%s' + "@%s/%s?charset=utf8") % (user, .原创 2022-03-01 16:19:34 · 1840 阅读 · 0 评论 -
2021-10-1825. K 个一组翻转链表
class Solution: #翻转一个子链表,并且返回新的头与尾 def reverse(self, head:ListNode,tail:ListNode): prev = tail.next p = head while prev != tail: nex = p.next p.next =prev prev =p p = ne...原创 2021-10-18 15:48:33 · 85 阅读 · 0 评论 -
两数相除 leetcode
class Solution: def divide(self, dividend: int, divisor: int) -> int: INT_MIN, INT_MAX = -2**31, 2**31 - 1 # 考虑被除数为最小值的情况 if dividend == INT_MIN: if divisor == 1: return INT_MIN ...原创 2021-10-18 15:26:42 · 117 阅读 · 0 评论 -
2021-10-18删除链表倒数第N个节点
class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: def getLength(head: ListNode) -> int: length = 0 while head: length += 1 head = head.next...原创 2021-10-18 15:20:37 · 89 阅读 · 0 评论 -
2021-10-18两两交换链表中的节点
class Solution: def swapPairs(self, head: ListNode) -> ListNode: if not head or not head.next: return head newHead = head.next head.next = self.swapPairs(newHead.next) newHead.next = head ...原创 2021-10-18 11:27:55 · 96 阅读 · 0 评论 -
2021-10-16 罗马数字转换
class Solution: SYMBOL_VALUES = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000, } def romanToInt(self, s: str) -> int: ans = 0 n = len(s) f.原创 2021-10-16 22:08:06 · 414 阅读 · 0 评论 -
70. 爬楼梯
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶c++class Solution {public: int climbStairs(int n) { int p = 0, q = 0, r = 1; for (int ...原创 2021-10-16 21:55:20 · 82 阅读 · 0 评论 -
力扣简单-链表3-21. 合并两个有序链表
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 1:class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: if l1 is None: return l2 el...原创 2021-10-16 21:43:24 · 2978 阅读 · 0 评论 -
力扣中级1 三数之和 双指针
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。[]唯一可能的三元组和不为 0。原创 2021-10-06 23:39:33 · 136 阅读 · 0 评论 -
多数元素 在数组中出险次数大于n/2
class Solution: def majorityElement(self, nums: List[int]) -> int: nums.sort() return nums[len(nums) // 2]class Solution: def majorityElement(self,nums:List[int]) -> int: nums.sort() return nu...原创 2021-10-05 01:39:12 · 90 阅读 · 0 评论 -
136. 只出现一次的数字
reduce()函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。class Solution: def singleNumber(self, nums: List[int]) -> int: return reduce(lambda x, y: .原创 2021-10-04 19:12:31 · 75 阅读 · 0 评论 -
2021-10-04 最大子序和 python
class Solution: def maxSubArray(self, nums: List[int]) -> int: sum = 0 MaxSum = nums[0] for i in range(len(nums)): sum += nums[i] if sum > MaxSum: MaxSum = sum if sum ...原创 2021-10-04 19:04:36 · 87 阅读 · 0 评论 -
最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: i...原创 2021-10-02 21:46:19 · 156 阅读 · 0 评论 -
整数转罗马数字
回顾前言中列出的这 1313 个符号,可以发现:千位数字只能由 \texttt{M}M 表示;百位数字只能由 \texttt{C}C,\texttt{CD}CD,\texttt{D}D 和 \texttt{CM}CM 表示;十位数字只能由 \texttt{X}X,\texttt{XL}XL,\texttt{L}L 和 \texttt{XC}XC 表示;个位数字只能由 \texttt{I}I,\texttt{IV}IV,\texttt{V}V 和 \texttt{IX}IX 表示。这恰好把这 13原创 2021-10-02 21:37:06 · 153 阅读 · 0 评论 -
新浪推荐 二面 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。方法一:双指针思路及解法使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。注意到以下性质:左指针左边均为非零数;右指针左原创 2021-09-27 20:33:30 · 101 阅读 · 0 评论 -
Python多线程
什么是线程? 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所 拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行'''''' 为什么要使用多线程? 线程在程序中是独立的、并发的执行流。与分隔的进程相比,进程中线程之间的隔离程度要小,它们共享内存、文件句柄...原创 2021-09-23 22:01:50 · 124 阅读 · 0 评论 -
Python全局解释锁
我们所说的Python全局解释锁(GIL)简单来说就是一个互斥体(或者说锁),这样的机制只允许一个线程来控制Python解释器。这就意味着在任何一个时间点只有一个线程处于执行状态。GIL对执行单线程任务的程序员们来说并没什么显著影响,但是它成为了计算密集型(CPU-bound)和多线程任务的性能瓶颈。由于GIL即使在拥有多个CPU核的多线程框架下都只允许一次运行一个线程,所以在Python众多功能中其声誉可谓是“臭名昭著”。在这篇文章中,你将了解到GIL是如何影响到你的Python程序性能的以及原创 2021-09-23 21:57:49 · 486 阅读 · 0 评论 -
2021-09-07
一、简介矩阵分解(Matrix Factorization,MF)是推荐系统中非常经典的一个算法,虽然现今工业界直接使用的较少,但其背后蕴含的编码降维思想,得以广泛应用于推荐领域之中。本文则主要来梳理下MF和FM的原理,灵感主要来源于大神张俊林的文章(张俊林:推荐系统召回四模型之:全能的FM模型)。二、MF(Matrix Factorization)矩阵分解MF算法,同时兼具了协同过滤,隐语义分析和有监督学习的特性,加上矩阵分解的易实现性和高拓展性,成为推荐领域非常经典的算法。我们先来梳理下矩阵原创 2021-09-07 17:22:03 · 209 阅读 · 0 评论 -
2021-09-07python深拷贝和浅拷贝
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。什么是可变对象,什么是不可变对象:可变对象是指,一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值;不可变对象是指,一个对象所指向的地址上值是不能修改的,如果你修改了这个对象的值,那么它指向的地址就改变了,相当于你把这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了,但是可变对象就不会做这样的动作,而是直接在对原创 2021-09-07 15:43:17 · 94 阅读 · 0 评论 -
2021-09-02最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nu...原创 2021-09-02 11:55:53 · 141 阅读 · 0 评论 -
2021-09-02Hive 未被external修饰的是内部表,被external修饰的是外部表
hive 内部表和外部表的区别? hive 是如何实现分区的? Hive 有哪些方式保存元数据,各有哪些优缺点? hive中order by、distribute by、sort by和cluster by的区别和联系 hive 中的压缩格式 RCFile、 TextFile、 SequenceFile 各有什么区别? hive 如何优化?2|0hive 内部表和外部表的区别?未被external修饰的是内部表(managed table),被external修饰的为外部表(external原创 2021-09-02 11:47:29 · 352 阅读 · 0 评论 -
2021-09-02Hive
1.Hive表关联查询,如何解决数据倾斜的问题1)倾斜原因:map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。(1)key分布不均匀;(2)业务数据本身的特性;(3)建表时考虑不周;(4)某些SQL语句本身就有数据倾斜;如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值。2)解决方案(1)参数调节:hive.map.aggr = truehive.原创 2021-09-02 11:42:30 · 141 阅读 · 0 评论