天元浪子
码龄11年
求更新 关注
提问 私信
  • 博客:3,643,578
    社区:7,547
    问答:65,166
    动态:2,661
    学院:1,858
    视频:1
    3,720,811
    总访问量
  • 190
    原创
  • 34,130
    粉丝
  • 49
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
加入CSDN时间: 2014-12-06

个人简介:齐国土著,太公之后。少小离家,独闯江湖,后归隐于CSDN部落格。素以编写python代码为业,偶尔游戏于各网络对局室,擅长送财送分,深为众棋友所喜闻乐见。

博客简介:

Python作业辅导员 - 天元浪子

博客描述:
码路漫漫,我心灿灿
查看详细资料
个人成就
  • 优质创作者: python技术领域
  • 领域专家: Python技术领域
  • 获得17,974次点赞
  • 内容获得3,543次评论
  • 获得56,317次收藏
  • 代码片获得13,034次分享
  • 博客总排名18,616名
  • 原力等级
    原力等级
    8
    原力分
    5,994
    本月获得
    5
创作历程
  • 1篇
    2025年
  • 7篇
    2023年
  • 26篇
    2022年
  • 38篇
    2021年
  • 44篇
    2020年
  • 55篇
    2019年
  • 15篇
    2018年
  • 5篇
    2017年
  • 1篇
    2016年
成就勋章
TA的专栏
  • 跟“风云卫星”数据工程师学Python
    付费
    27篇
  • python论道
    147篇
  • Rust学习笔记
    1篇
  • IT动态
    1篇
  • MSN三剑客
    5篇
  • wxPython
    6篇
  • OpenGL学习笔记
    15篇
  • OpenCV学习笔记
    2篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 5

TA参与的活动 5

创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

23人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Numpy二维数组分块求和算法

乍一听,似乎不难,细想却发现这个问题并不简单。梳理了一遍自己熟悉的知识库,numpy没有提供直接解决问题的函数,scipy的二维卷积有点似是而非。早上有同事问了一个问题:如何将m行n列二维numpy数组切成若干个u行v列的小块,并求每一小块的元素和,其中m是u的整倍数,n是v的整倍数——简单说就是二维数组分块求和问题。结果看起来是正确的,不过列表推导式本质上还是for循环,这个代码跑起来速度是个大问题。先构造一个4行6列的二维数组,再将其切分成6个2行2列的小块,并求和。这应该是最简洁、最高效的方案了。
原创
博文更新于 2025.06.17 ·
491 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

Slint语言文档(机翻中文版)

Slint是一种易于学习和使用的语言,用于描述用户界面。Slint语言对于人类和机器都是可读的——如此,我们一方面拥有了出色的工具,同时通过阅读显示用户界面的代码,使得设计师和开发人员能够确切地知道会发生什么。
翻译
博文更新于 2023.06.23 ·
7117 阅读 ·
10 点赞 ·
0 评论 ·
27 收藏

十分钟玩转3D绘图:WxGL完全手册

WxGL是一个基于PyOpenGL的跨平台三维数据快速可视化工具包,提供类似Matplotlib风格的应用方式。WxGL也可以集成到wxPython或PyQt6中实现更多的功能和控制。WxGL提供了一套简洁易用、对用户友好的API,将OpenGL的复杂概念封装起来,使得用户可以更加专注于数据的处理,而无需在3D显示方面耗费精力。WxGL还提供了着色器语言接口,允许用户定制着色器,以应对特殊的应用需求。
原创
博文更新于 2023.05.11 ·
5264 阅读 ·
11 点赞 ·
9 评论 ·
30 收藏

WxGL应用实例:绘制带有塑料质感的分子模型

本文的重点是演示如何使用WxGL光照模式,以及如何通过设置漫反射系数、镜面反射系数、高光系数、透光系数等参数来模拟不同的材质。所谓的分子模型,只是笔者凭空想象出来的由圆球和圆管组成的类似积木的玩具,希望不会因此而造成误会。
原创
博文更新于 2023.05.05 ·
2344 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

WxGL应用实例:绘制点云

如果数据中有颜色信息,或者用强度信息映射为颜色,则需要用户自行判别并在app.scatter方法中提供color(颜色)参数,或者data(数据)和cm(调色板)参数。还有另外一种更简单的方式,那就是直接使用app.pointcloud方法,只需要一个点云文件参数即可绘制出点云模型,该方法会自动识别文件是否包含颜色信息和激光强度信息。以下代码在IDLE中演示了read_pcfile函数的用法,其中用到的点云文件可从以下地址下载。数据解读出来之后,调用app.scatter方法即可绘制出点云模型。
原创
博文更新于 2023.05.05 ·
2922 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

WxGL应用实例:绘制高精度的3D太阳系模型

远古时期的人类就对神秘幽邃的星空充满了好奇与敬畏。仰望星空,宇宙浩瀚。比宇宙更壮阔的,是人类对宇宙的不懈追问和沉淀在基因中的探索精神。本文尝试用WxGL来回答“日月安属、列星安陈”这个古老的问题。太阳系天体轨道数据来源于JPL(美国喷气实验室)星历表,天体自转周期和自转轴倾角来源于网路。
原创
博文更新于 2023.04.22 ·
5769 阅读 ·
12 点赞 ·
0 评论 ·
17 收藏

暑假来了,画一个日月地球的轨道模型给孩子们,秒懂四季更迭、日蚀月蚀

无言相守45亿年,太阳、地球和月球这三个好基友究竟是怎样的关系呢?从孩提时代我就一直在想,要是能有一个可以直观演示太阳、地球和月球运行轨迹的模型就好了。今天,我终于实现了小时候的梦想:用WxGL画出了太阳、地球和月球的动态轨道模型。配上简单的解说,小朋友也可以秒懂四季更迭、日蚀月蚀、黄赤交角。
原创
博文更新于 2023.04.13 ·
10642 阅读 ·
42 点赞 ·
27 评论 ·
45 收藏

计算1亿以内素数的个数,C/Rust/Python的性能差距有多大?测试结果出乎意料

C被公认为速度最快的编程语言,Rust的速度接近于C,二者差距在毫厘之间。如果单纯和C/Rust比速度的话,Python处于被碾压的地位,差不多慢了一个量级。不过,下面这个测试,却呈现了一个颠覆性的结果:使用相同的算法,分别用C语言、Rust语言和Python语言编程计算1亿以内素数的个数,三者用时之比为!差距如此之小,勘堪打了个平手。
原创
博文更新于 2023.03.31 ·
3453 阅读 ·
2 点赞 ·
2 评论 ·
7 收藏

Vim速查手册:最强大的工具,最全面的指南

vim被公认为最强的编辑器,自然有其独到之处。对于新手而言,模式、寄存器和缓冲区是有别于其他编辑器的三个核心概念。
原创
博文更新于 2023.03.21 ·
5334 阅读 ·
9 点赞 ·
0 评论 ·
39 收藏

gl_PointCoord始终是0

答:

看起来这段GLSL代码并没有问题。你是如何确定片元纹理始终不变的呢?渲染管线在渲染片元时针对每个片元都有一个不同的gl_PointCoord,除非顶点只有1个片元————没有开启点精灵(PointSprite)模式,或者视窗缩小到很小的情况下,才会出现这种情况。我猜你的问题是没有开启点精灵模式,或者忘记设置点的size了吧?

回答问题 2023.02.21

元宵节就要到了,花灯要不要来一盏?3D的那种

说起元宵节,各位有没有觉得这是咱们中国人最浪漫的节日呢?国人向来拘谨古板,一年到头都是小心谨慎地过日子,唯有元宵节这天可以纵情豪放一把。东风夜放花千树,宝马雕车香满路,火树银花霓虹闪烁,豪车遍地美女如云。细品,你甚至都能嗅到香奈儿的味道!月上柳梢头,人约黄昏后,这又是何等的浪漫!比起烛光晚宴、鲜花加持,这份浪漫更显纯真。晚至明清,民间元宵节的喜庆气氛,堪比西班牙的奔牛节、巴西的狂欢节、泰国的泼水节。
原创
博文更新于 2023.02.04 ·
4181 阅读 ·
16 点赞 ·
11 评论 ·
21 收藏

从固定管线到可编程管线:十段代码入门OpenGL

至此,一个完整的视点系统就建立起来了。视点系统对应着一个矩阵,相机方位角、高度角以及距离的变化就是改变这个矩阵,这个矩阵叫做视点矩阵(View Matrix)。视点矩阵是玩转OpenGL必须要理解的三个矩阵之一,另外两个是投影矩阵(Projection Matrix)和模型矩阵(Model Matrix),三个矩阵合称MVP矩阵。喜欢篮球或足球的话,很容易记住这个组合——MVP,最有价值球员。
原创
博文更新于 2023.01.10 ·
4814 阅读 ·
22 点赞 ·
7 评论 ·
45 收藏

python数据挖掘

答:

代码中看不出对数据文件存在年份的限制,猜测是2020年前的数据文件在规则或格式上与其他文件存在差异。建议:

  1. 在第119行开始的循环中追踪每一个数据文件的处理过程,并在循环结束后print(valid_files);

  2. 若valid_files包含2020年之前的数据文件,则在第151行开始的循环中追踪每一个zip文件的处理过程。

回答问题 2023.01.10

如何理解python的tkinter库的mainloop()函数?

答:
from tkinter import *

root = Tk() # 1. 创建一个窗体
Label(root, text='Hello World').pack() # 2. 添加Label控件
root.mainloop() # 3. 启动循环监听事件

这是一个最简单的TK程序,除了导入模块,只有3行代码。试想一下,如果mainloop不是一个循环,程序是不是很快就结束了?因此,mainloop首先得是一个循环,其功能就是侦听各类事件——代码中绑定的事件以及框架自带的事件(例如窗口关闭事件)。

不止是Tk,其他事件驱动型的GUI库,比如Wx和Qt,莫不如此。不同的是,Wx和Qt将一个窗口程序分成了app和frame两部分,wx使用app.MainLoop()进入事件处理主循环,Qt使用app.exec()进入事件处理主循环。

回答问题 2023.01.04

Python怎么用进度条监测程序的完成情况?

答:
  1. 一个程序,既要完成你的既定任务,又要实时显示任务完成的进度,就必须使用线程或进程技术。
  2. 如果你的任务完成进度是预知的或可计算的,就可以给出精确的进度,否则就只能显示任务正在执行的状态,并且需要在任务结束后给出任务结束的标志。

下面的例子,用一个计数器定时自动加1来模拟你的既定任务,满100即结束任务。这意味着任务进度是可计算的,因此可以百分比的形式显示任务进度。使用子线程执行既定任务,主线程负责显示进度。你可以构造无法预知结束时间的任务,使用其他形式的进度条。

import time
import threading

counter = [0]

def your_job():
    """你的工作。计数器每隔100ms自动加1,满100时,工作结束"""

    while counter[0] < 100:
        counter[0] += 1
        time.sleep(0.1)

def cover(delay=0.05):
    """百分比进度指示"""
    
    while counter[0] < 100:
        s = '\r%d%%'%counter[0]
        print(s.ljust(4), end='', flush=True)
        time.sleep(delay)
    print('\r任务完成')
 
if __name__ == '__main__':
    threading.Thread(target=your_job).start()
    cover()
回答问题 2022.11.27

写给 python 程序员的 OpenGL 教程

OpenGL 是 Open Graphics Library 的简写,意为“开放式图形库”,是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。OpenGL 不是一个独立的平台,因此,它需要借助于一种编程语言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL,我当然习惯性选择 python 语言。如果读者是 python 程序员,并且了解 numpy,接下来的阅读应该不会有任何障碍;否则,我建议先花半小时学习一下 python 语言。
原创
博文更新于 2022.11.26 ·
77289 阅读 ·
292 点赞 ·
57 评论 ·
888 收藏

ScreenToClient cannot work when toplevel window is not shown

发布资源 2022.11.18 ·

初学者 二分法解决方程近似解

答:

方程 x*x -x + 2 = 0 没有实数根,即便题主的算法没有问题,也不可能得到正确的结果。以下代码,供题主参考。f_str是字符串形式的包含自变量x的函数表达式,a和b是函数过零点的左右两侧的点,eps是近似解可接受的误差(比如0.00001)。

def bisection(f_str, a, b, eps):
    """二分法求方程的根"""
    def f(x):
        return eval(f_str)
    if a > b:
        a, b = b, a
    if f(a) * f(b) > 0:
        print('方程在[a, b]区间内无解')
    else:
        n = 0
        while True:
            n += 1
            root = (a+b)/2
            y = f(root)
            if abs(y) < eps:
                break
            if f(a) * y < 0:
                b = root
            else:
                a = root
        print('经过%d次迭代求得方程的根为%f'%(n, root))

        
f_str = input('请输入函数解析式: f = ')
请输入函数解析式: f = 2*pow(x, 2) - 1
a = float(input('请输入区间左端点: a = '))
请输入区间左端点: a = 0
b = float(input('请输入区间右端点: b = '))
请输入区间右端点: b = 2
bisection(f_str, a, b, 1e-5)
经过17次迭代求得方程的根为0.707108
2*pow(0.707108, 2) - 1 # 验证结果
3.4473279999502893e-06
回答问题 2022.11.10

怎么用Python多行输入数据,然后以#作为输入的结束?

答:
def func():
    grade, flunk = list(), list()
    while True:
        info = '输入成绩(以#结束):\n' if len(grade) == 0 else ''
        item  = input(info)
        if item == '#':
            break
        else:
            grade.append(float(item))
            if grade[-1] < 60:
                flunk.append(grade[-1])
    print('成绩:%s' % ','.join([str(d) for d in grade]))
    print('不及格课程门数:%d' % len(flunk))
    print('不及格成绩分别为:%s' % ','.join([str(d) for d in flunk]))

    
func()
输入成绩(以#结束):
98
79
58
80
59.5
75
#
成绩:98.0,79.0,58.0,80.0,59.5,75.0
不及格课程门数:2
不及格成绩分别为:58.0,59.5
回答问题 2022.11.09

Gvim和教程不一样怎么回事?

答:

先敲一个i或a,就可以输入内容了。建议先了解一下vim的基本模式和基本操作,再上手就不至于一脸茫然了。有兴趣可以参考这篇博客:

Vim速查手册:最强大的工具,最全面的指南_天元浪子的博客-CSDN博客 vim被公认为最强的编辑器,自然有其独到之处。对于新手而言,模式、寄存器和缓冲区是有别于其他编辑器的三个核心概念。 https://xufive.blog.csdn.net/article/details/127110785

回答问题 2022.11.09
加载更多