PyTorch一些有趣而又实用的小操作

如何取出高维张量中满足一定条件的值(比如大于0.5),其余设为零?

解决方案一,张量花式索引

  代码如下

a = t.randn([2,3])
print(a)
a[a<0.5] = 0
print(a)

  结果
在这里插入图片描述

解决方案二,torch.where()的API

  比上种方法更快,其代码如下

a = t.randn([2,3])
print(a)
a = t.where(a>0.5, a, t.zeros_like(a))# 当a中某一个元素满足第一个形参的条件时,返回a的值,否则返回 t.zeros_like(a)中的值
print(a)

  结果
在这里插入图片描述

<think>好的,我需要帮助用户找到有趣的Python开源项目示例。首先,用户已经提供了几个引用,包括快速排序、GUI示例、Playwright等。我需要根据这些引用推荐相关项目,同时确保符合用户的要求,比如结构清晰、真实可靠。 首先,看看用户提供的引用:引用1是Python示例项目,引用2是GUI例子,引用4是Playwright-Python,引用5提到性能优化。用户可能对不同类型的项目感兴趣,比如算法、GUI自动化、测试工具等。 接下来,我应该分类整理这些项目,并补充一些其他流行的Python开源项目,确保多样性。例如,机器学习、Web框架、游戏开发等方向都是Python的热门领域,可以增加推荐的丰富性。 需要注意的是,用户要求生成相关问题,所以在回答最后要添加相关问题部分。同时,所有数学公式必须用$...$,独立公式用$$...$$,但当前问题不涉及数学公式,所以可能不需要处理这部分。不过要检查是否有遗漏。 还要确保回答结构清晰,分点介绍每个项目,包括项目名称、简介、技术栈和应用场景。引用格式正确,例如在每个项目描述的末尾加上对应的引用标识。例如,引用1对应的是Python示例项目,引用2是GUI示例,引用4是Playwright-Python,引用5是性能优化相关的部分。 另外,用户提到不想引入依赖,比如引用5中的numpy,所以可能需要推荐一些轻量级的项目,或者强调项目的依赖性。但现有的引用中,Playwright可能涉及浏览器自动化,而GUI项目可能依赖PyQt,这些需要明确说明。 现在开始组织内容: 1. Python基础算法与示例(引用1):快速排序的例子,适合算法学习。 2. GUI开发示例(引用2):PyQt的GUI项目,适合桌面应用开发。 3. 浏览器自动化Playwright(引用4):适合Web测试和爬虫。 4. 性能优化技巧(引用5):虽然项目本身可能没有,但可以提到如何优化Python代码,避免依赖。 此外,补充其他有趣项目,如机器学习、游戏、CLI工具等。例如: - TensorFlow/PyTorch:机器学习框架。 - Django/Flask:Web框架。 - Pygame:游戏开发。 - Requests:HTTP库。 - Black:代码格式化工具。 需要确保每个推荐的项目都有具体的例子和简介,并合理分配引用链接。但根据用户提供的引用,可能只能引用已有的几个。因此,主要围绕用户提供的引用展开,适当补充其他方向,但可能无法添加更多引用链接,因为用户只给了特定的几个。 最后,生成相关问题,比如如何学习GUI开发、Playwright的应用场景、算法项目的学习方法等。 检查是否所有引用都正确使用,没有遗漏。例如,引用3和引用5是否需要被引用?用户的问题是关于寻找有趣项目,引用3提到项目没有主入口文件,是独立脚本,可能适合作为示例项目。引用5提到性能问题,但可能和推荐项目关联不大,可以暂时不引用。 最终结构: - 分点推荐项目,每个项目包含简介、技术栈、应用场景和引用。 - 相关问题部分,提出3-4个问题。 现在开始撰写回答,确保用中文,结构清晰,引用正确。</think>### 有趣的 Python 开源项目推荐 以下是几个涵盖不同领域的 Python 开源项目示例,结合实用性和趣味性,适合学习和实践: --- #### 1. **Python 基础算法与示例** - **项目简介**:包含经典算法(如快速排序、动态规划)和基础语法的代码示例,适合算法学习与代码实践。 - **技术栈**:纯 Python 实现,无额外依赖。 - **应用场景**:算法教学、面试刷题、代码优化参考。 - **示例代码**(快速排序): ```python def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[0] return quick_sort([x for x in arr[1:] if x < pivot]) + [pivot] + quick_sort([x for x in arr[1:] if x >= pivot]) ``` - **项目地址**:[Python Examples](https://gitcode.com/gh_mirrors/py/Python) [^1] --- #### 2. **Python GUI 开发示例** - **项目简介**:提供 PyQt4/PyQt5 的 GUI 开发模板,涵盖窗口、按钮、绘图等基础组件,适合桌面应用开发入门。 - **技术栈**:PyQt、Python 3。 - **应用场景**:数据可视化工具、小型桌面软件(如计算器、画板)。 - **示例功能**:实现画板时,项目通过优化画布渲染逻辑避免直接像素操作,提升性能[^5]。 - **项目地址**:[Python-GUI-examples](https://gitcode.com/gh_mirrors/py/Python-GUI-examples) [^2] --- #### 3. **浏览器自动化工具 Playwright** - **项目简介**:支持 Chromium、Firefox 和 WebKit 的自动化测试框架,可模拟用户操作(点击、表单填写)。 - **技术栈**:Playwright、异步编程。 - **应用场景**:Web 自动化测试、爬虫、批量截图。 - **示例代码**: ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch() page = browser.new_page() page.goto("https://example.com") print(page.title()) browser.close() ``` - **项目地址**:[playwright-python](https://gitcode.com/gh_mirrors/pl/playwright-python) [^4] --- #### 4. **轻量级游戏开发库 Pygame** - **项目简介**:基于 SDL 库的 2D 游戏开发框架,提供图形渲染、音效处理和事件管理功能。 - **技术栈**:Pygame、OpenGL(可选)。 - **应用场景**:小游戏开发(如贪吃蛇、俄罗斯方块)、交互式艺术装置。 - **推荐项目**:[Pygame 官方示例](https://github.com/pygame/pygame/tree/main/examples) --- #### 5. **机器学习实践项目 Scikit-learn** - **项目简介**:提供经典机器学习算法(如 SVM、随机森林)的简洁实现,适合快速搭建模型。 - **技术栈**:NumPy、SciPy、Scikit-learn。 - **应用场景**:数据分类、回归分析、聚类任务。 - **示例代码**(鸢尾花分类): ```python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier iris = datasets.load_iris() X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target) clf = RandomForestClassifier() clf.fit(X_train, y_train) print(clf.score(X_test, y_test)) ``` --- §§ 1. 如何选择适合初学者的 GUI 开发框架? 2. Playwright 与其他自动化工具(如 Selenium)有何区别? 3. 在 Python 中实现高性能算法需要注意哪些问题? 4. 有哪些适合用 Pygame 开发的经典小游戏?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值