程序设计语言
文章平均质量分 84
介绍各种程序设计语言
IT_Beijing_BIT
IT老兵
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Rust入门 之二
Rust程序流控制原创 2025-11-18 11:39:26 · 349 阅读 · 0 评论 -
Rust入门
介绍如何运行rust程序的步骤原创 2025-11-15 22:55:17 · 227 阅读 · 0 评论 -
Rust入门 之一
Rust语言序列第一篇原创 2025-11-15 10:16:18 · 590 阅读 · 0 评论 -
C++并行处理支持库 之六
通过使用Futures标准库,我们可以获取异步任务返回值,捕获异步任务引发的异常。异步任务就是在独立线程中启动运行的函数。这些值以共享状态进行通信,其中异步任务可以写入其返回值,或存储异常,并且可以其他线程检查、等待或以其他方式操作,这些线程包含std::future或std::shared_future实例,而std::future或std::shared_future引用该共享状态。原创 2025-01-01 11:00:53 · 471 阅读 · 0 评论 -
C++并行处理支持库 之五
当控制权离开创建scoped_lock对象的作用域时,scoped_lock将被破坏,并释放互斥锁。锁定shared_lock会在共享模式下,锁定关联的共享mutex,要在独占模式下锁定它,可以使用std::unique_lock。scoped_lock类是一个mutex包装器,它提供了一种方便的RAII风格的机制,用于在作用域块的持续时间内,拥有零个或多个mutex。lock_guard 类是一个互斥锁包装器,它提供了一种方便的RAII样式机制,用于在作用域块的持续时间内,拥有互斥锁。原创 2025-01-01 09:01:06 · 1031 阅读 · 0 评论 -
C++并行处理支持库 之四
条件变量是一个同步原语,允许多个线程相互通信。它允许一定数量的线程等待(可能超时)来自另一个线程的通知,它们可以继续。条件变量始终与互斥锁相关联。std::condition_variable 是一种与 std::mutex 一起使用的同步原语,用于阻止一个或多个线程,直到另一个线程修改共享变量(条件),并通知 std::condition_variable。获取 std::mutex(通常通过 std::lock_guard)。在拥有锁的情况下修改共享变量。原创 2024-12-31 12:34:42 · 958 阅读 · 0 评论 -
C++并行处理支持库 之三
互斥算法可防止多个线程同时访问共享资源。这可以防止数据竞争,并为线程之间的同步提供支持。原创 2024-12-31 03:17:28 · 1013 阅读 · 0 评论 -
C++并行处理支持库 之二
std::atomic模板的每个实例化和完全特化都定义了一个原子类型。如果一个线程写入原子对象,而另一个线程从中读取,则行为是良定义的。此外,对原子对象的访问可以建立线程间同步,并按照 std::memory_order 指定的顺序,对非原子内存访问进行排序。原子操作是为细粒度操作提供的,允许无锁并发编程。每个原子操作对于涉及同一对象的任何其他原子操作都是不可分割的。std::atomic 既不可复制,也不可移动。下列代码说明几个atomicAPIs如何使用。原子对象不存在数据竞争。原创 2024-12-19 10:57:24 · 518 阅读 · 0 评论 -
C++并行处理支持库 之一
类线程代表单个执行线程。线程允许多个函数同时执行。线程在构造关联的线程对象后立即开始执行(等待任何操作系统调度延迟),从作为构造函数参数提供的顶级函数开始。顶级函数的返回值将被忽略,如果它通过抛出异常而终止,则调用 std::terminate。顶级函数可以通过 std::promise 或通过修改共享变量(这可能需要同步,请参阅 std::mutex 和 std::atomic)向调用者传达其返回值或异常。原创 2024-12-19 10:56:51 · 542 阅读 · 0 评论 -
Python库numpy之七
两个结构化数组之间的赋值,就好像将源元素转换为元组,然后赋值给目标元素一样。也就是说,源数组的第一个字段将赋值给目标数组的第一个字段,第二个字段赋值给目标数组的第二个字段,依此类推。两个结构化数组的字段名称不同,不影响赋值。具有不同字段数的结构化数组不能互相赋值。为结构化数组赋值的最简单方法是使用 python 元组。元组的元素从左到右赋值数组的连续字段。结构化数组也可以赋值给非结构化数组,只要结构化数据类型只有一个字段。赋值给结构化元素的标量将赋值给所有字段。非结构化数组赋值给结构化数组。原创 2024-10-29 13:53:40 · 742 阅读 · 0 评论 -
Python库numpy之六
该字典有两个必需的键,“名称”和“格式”,以及四个可选的键,“偏移量”,“域大小”,“对齐”和“标题”。在字段之间插入填充字节,以便每个字段的字节偏移量将是该字段对齐的倍数,对于简单数据类型,该对齐通常等于字段的字节大小。fieldname 是一个字符串(如果使用标题,则为元组,请参阅下面的字段标题),datatype 可以是可转换为数据类型的任何对象,shape 是指定子数组形状的整数元组。结构化数组是 ndarray,其数据类型是,更简单数据类型构成的,被命名的字段序列的组合。原创 2024-10-29 13:53:19 · 925 阅读 · 0 评论 -
Python库numpy之五
某些类型,例如 numpy.int_ 和 numpy.intp,具有不同的位数,具体取决于平台,例如 32 位与 64 位 CPU 架构。NumPy 知道 int 指的是 numpy.int_,bool 指的是 numpy.bool,float 指的是 numpy.float64,complex 指的是 numpy.complex128。以上都是固定宽度的数据类型。可以使用 numpy 顶级API中的标量类型创建具有指定 dtype 的数组,例如numpy.bool、numpy.float32 等。原创 2024-10-20 04:15:35 · 1154 阅读 · 0 评论 -
Python库matplotlib之十二
bool, 如果为 True,则将启用拾取,并且如果鼠标事件位于artist上方,artist将触发拾取事件。设置 pickradius 将添加一个以点为单位的 epsilon 容差,如果其数据在鼠标事件的 epsilon 范围内,artist将触发一个事件。对于某些artist,如线条和补丁集合,artist可以向生成的拾取事件提供附加数据,例如,拾取事件的 epsilon 内的数据索引。函数, 如果选择器是可调用的,则它是用户提供的函数,用于确定artist是否被鼠标事件击中。原创 2024-10-19 07:58:26 · 535 阅读 · 0 评论 -
Python库matplotlib之十一
下列程序运行时,滚动鼠标的滚轮,on_scroll函数被调用,依据滚轮的滚动方向,参数w被加1,或减1。当鼠标进入Axes,特定的Axes中, timer控制sin的相位角,引起波形变化。下列程序通过处理figure和Axes进入和离开事件,控制sin函数的波形显示。参数w改变,引起sin波形变化。原创 2024-10-19 04:55:07 · 363 阅读 · 0 评论 -
Python库matplotlib之十
下列代码,当用户点击关闭窗口时,调用关闭回调函数on_close。这给程序员在窗口关闭之前,做一些cleanup工作, 比如,关闭文件,TCP/IP端口等。下列运行时,当用户点击鼠标的左键,一条竖线随鼠标移动;当用户点击右键时,竖线停止移动。再次点击左键,竖线再次随鼠标移动。下列程序检测四个键x,y,+ 和 -。x和y改变正弦曲线的画线方式和颜色, +和-改变正弦曲线的相位角。下列的例子通过连接移动和单击事件与绘图画布进行交互的例子。原创 2024-10-18 23:58:38 · 399 阅读 · 0 评论 -
Python库numpy之三
词法:numpy.eye(N, M=None, k=0, dtype=<class ‘float’>, order=‘C’, *, device=None, like=None)numpy.eye产生一个二维数组,对角线上的值为 1,其他位置的值为0。order,该参数类型是{‘C’, ‘F’}, 是可选的。dtype,该参数类型是data-type, 是可选的。like,该参数类型是array_like, 是可选的。M,该参数类型是int, 是可选的。k,该参数类型是int, 是可选的。原创 2024-10-17 00:32:02 · 1177 阅读 · 0 评论 -
Python库numpy之二
词法:numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)仅当参数start,stop,或base是类数组时,才相关。词法:numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None, axis=0)如果endpoint不是False,则stop是列的结束值。如果endpoint不是False,则stop是列的结束值。原创 2024-10-12 10:58:07 · 1205 阅读 · 0 评论 -
Python库numpy之一
词法:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None)一维数组创建函数,例如numpy.linspace 和 numpy.arange,通常需要至少两个输入,start和stop。如果retstep为True,则该函数返回两个值,即 (samples, step),其中 step 是样本之间的间距。endpoint,该参数类型是bool, 是可选的。原创 2024-10-12 09:04:10 · 1286 阅读 · 0 评论 -
Python库matplotlib之九
ArtistAnimation是TimedAnimation的子类,它使用一组固定的Artist对象创建动画。Matplotlib基于其绘图功能,还提供了一个使用动画模块,生成动画的接口。动画是一系列帧,其中每个帧对应于图形上的一个图。artists是一个list,list的每个条目都是Artist对象的集合,它将在相应帧上可见。如果参数repeat为True,则它是连续动画运行之间的以毫秒为单位延迟。该参数确定,当帧序列完成时,动画是否重复。repeat,该参数类型是bool, 默认值为True。原创 2024-10-12 02:40:02 · 868 阅读 · 0 评论 -
Python库matplotlib之六
词法:matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)该函数的第一个参数将是frames参数的下一个值。在所有参数类型情况下,frames中的值只是简单地传递给用户提供的函数,因此可以是任何类型。blit == False,则返回值不被使用,并且在这种情况下可以被省略。原创 2024-10-11 23:58:17 · 1438 阅读 · 0 评论 -
Python库matplotlib之八
【代码】Python库matplotlib之八。原创 2024-10-09 09:18:58 · 323 阅读 · 0 评论 -
Python库matplotlib之七
使用参数labeldistance,分别改变改变楔形图标注位置;使用参数rotatelabels,改变楔形图标注的角度。每个楔形的分数面积由 x/sum(x) 给出。默认情况下,从 x 轴开始,逆时针绘制楔形。绘制饼图,并标记楔形图。要添加标签,将标签列表传递给labels参数。使用参数pctdistance,改变autopct 文本位置。将函数或格式字符串传递给 autopct 以标记切片。使用参数colors,设置 楔形图的颜色。原创 2024-10-09 09:18:20 · 825 阅读 · 0 评论 -
Python库pandas之七
不是有效的属性字典,因为“asdf”不是有效的HTML属性,即使它是有效的XML属性。该字典的键可以是整数或列标签,值是采用一个输入参数、单元格(而不是列)内容并返回转换后的内容的函数。用于解码网页的编码。是一个有效的属性字典,因为“id”HTML 标签属性对于本文档中的任何HTML标签来说,都是有效的 HTML 属性。flavor,该参数类型是{“lxml”, “html5lib”, “bs4”} 或i类似list, 是可选的。该参数是用于制作列标题的行,该参数也可以用于MultiIndex的行列表。原创 2024-10-07 05:56:07 · 1179 阅读 · 0 评论 -
Python库pandas之五
如果“infer”和“path_or_buf”是类似路径,则检测以下扩展名的压缩:“.gz”、“.bz2”、“.zip”、“.xz”、“.zst”、“.tar” 、“.tar.gz”、“.tar.xz”或“.tar.bz2”。path_or_buf,该参数类型是字符串, 文件路径对象, 有类似文件特征的对象, 或None, 默认值为None。如果该参数是一个非二进制文件对象,则应使用 newline=‘’ 打开它,禁用通用换行符。mode,该参数类型是{‘w’, ‘x’, ‘a’}, 默认值为‘w’转载 2024-10-05 13:00:01 · 866 阅读 · 0 评论 -
Python库pandas之六
词法:pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None, dtype_backend=<no_default>, dtype=None)如果传递的是表而不是查询,则忽略该参数。dtype_backend,该参数类型是{‘numpy_nullable’, ‘pyarrow’}, 默认值为‘numpy_nullable’原创 2024-10-05 00:08:48 · 1019 阅读 · 0 评论 -
Python库pandas之四
如果“infer”和“path_or_buf”是类似路径,则检测以下扩展名的压缩:“.gz”、“.bz2”、“.zip”、“.xz”、“.zst”、“.tar” 、“.tar.gz”、“.tar.xz”或“.tar.bz2”,否则不压缩。也可以是字典,该字典包含 'method’键,而且该键的值为 {‘zip’, ‘gzip’, ‘bz2’, ‘zstd’, ‘xz’, ‘tar’}。‘table’ : 字典,值有 {‘schema’: {schema}, ‘data’: {data}} 的形式。原创 2024-10-03 11:02:31 · 1432 阅读 · 0 评论 -
Python库pandas之二
如果 data 是包含一个或多个 Series的字典,Series可能具有不同数据类型,则 copy=False 将确保不会复制这些输入。词法:pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)当数据没有列标签时,该参数用于结果帧的列标签,默认为RangeIndex(0, 1, 2, …算术运算对齐行和列。data,该参数类型是ndarray, Iterable, dict, 或者DataFrame。原创 2024-10-03 04:52:31 · 1288 阅读 · 0 评论 -
Python库pandas之三
例如,有效的类似列表的 usecols 参数将为 [0, 1, 2] 或 [‘foo’, ‘bar’, ‘baz’]。要从保留元素顺序的数据实例化 DataFrame,请对 [‘foo’, ‘bar’ 中的列使用 pd.read_csv(data, usecols=[‘foo’, ‘bar’])[[‘foo’, ‘bar’]] '] 顺序或 pd.read_csv(data, usecols=[‘foo’, ‘bar’])[[‘bar’, ‘foo’]] 为 [‘bar’, ‘foo’] 顺序。原创 2024-10-03 00:06:32 · 1648 阅读 · 0 评论 -
Python库pandas之一
标签不必是唯一的,但必须是可哈希类型。该对象支持基于整数和基于标签的索引,并提供了许多用于执行涉及索引的操作的方法。词法:pandas.Series(data=None, index=None, dtype=None, name=None, copy=None, fastpath=<no_default>)系列(+、-、/、*、**)之间的运算,根据关联的索引值,进行对齐, 它们不需要具有相同的长度。参数data是字典的Series。参数data是元组的Series。参数data是列表的Series。原创 2024-09-30 06:24:42 · 1387 阅读 · 0 评论 -
Python库matplotlib之五
词法:RangeSlider(ax, label, valmin, valmax, valinit=None, valfmt=None, closedmin=True, closedmax=True, dragging=True, valstep=None, orientation=‘horizontal’, track_color=‘lightgrey’, handle_style=None, **kwargs)创建一个滑动条,定义包含在ax中的 [valmin, valmax] 的范围。原创 2024-09-30 00:28:31 · 1279 阅读 · 0 评论 -
Python库matplotlib之四
词法:matplotlib.widgets.RadioButtons(ax, labels, active=0, activecolor=None, *, useblit=True, label_props=None, radio_props=None)Matplotlib不会试图布局这些小部件,所以,您必须自己决定Axes的宽度和高度,以便容纳这些小部件。在 Axes中创建从 valmin 到 valmax 的滑动条。为了使滑动条保持响应,必须维护对其的引用。构造一个代表浮点范围的滑动条。原创 2024-09-29 15:13:28 · 2187 阅读 · 0 评论 -
Python库matplotlib之三
Matplotlib不会试图布局这些小部件,所以,您必须自己决定Axes的宽度和高度,以便容纳这些小部件。词法:matplotlib.widgets.Button(ax, label, image=None, color=‘0.85’, hovercolor=‘0.95’, *, useblit=True)这是必要的,因为回调登记仅维护函数的弱引用,这些函数是小部件的成员函数。如果没有对小部件对象的引用,它可能会被垃圾收集,这将断开回调。为了始终保持检查按钮的响应,必须保留对此对象的引用。原创 2024-09-29 13:01:54 · 1270 阅读 · 0 评论 -
Python库matplotlib之二
如果 num 是 int,则它将用于Figure.number 属性,否则,将使用自动生成的整数值(从 1 开始,并针对每个新图形递增)。projection,{None, ‘aitoff’, ‘hammer’, ‘lambert’, ‘mollweide’, ‘polar’, ‘rectilinear’, str}, 是可选参数。constrained_layout,变量类型是bool,默认值:rcParams[“figure.constrained_layout.use”](默认值:False)原创 2024-09-29 03:14:40 · 904 阅读 · 0 评论 -
Python库matplotlib之一
原因是,如果只给plot提供单个列表,或数组,matplotlib会假定它是y值的序列,并自动为生成 x 值。词法:matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)在 matplotlib.pyplot 中,各种状态在函数调用之间保留,以便它跟踪当前图形和绘图区域等内容,并且绘图函数定向到当前Axes。如果给plot提供两个列表,或数组,则可以绘制x与y的关系图,第一个数组是x, 第二数组树y。原创 2024-09-26 09:37:12 · 468 阅读 · 0 评论 -
python多进程程序设计 之六
函数multiprocessing.Manager()返回一个已启动的 SyncManager 对象,该对象可用于在进程之间共享对象。返回的管理器对象对应于生成的子进程,并具有创建共享对象,并返回相应代理的方法。Managers提供了一种创建可以在不同进程之间共享的数据的方法,包括通过网络在不同机器上运行的进程之间共享。其他进程可以使用代理访问共享对象。创建BaseManager后,应调用start() 或 get_server().serve_forever(),以确保管理器对象引用已启动的管理器进程。原创 2024-09-23 11:28:42 · 1637 阅读 · 0 评论 -
Python在AI中的应用--使用决策树进行文本分类
决策树是一种非参数监督学习算法,可用于分类和回归任务。它具有分层的树结构,由根节点、分支、内部节点和叶节点组成。看下列的一个例子,假设您正在尝试评估是否一个动物是家猫,您可以使用以下决策规则来做出选择:这种类型的流程图结构还创建了一种易于理解的决策表示形式,使组织中的不同团队能够更好地理解做出决策的原因。决策树学习采用分而治之的策略,通过进行贪婪搜索,识别树内的最佳分裂点。然后以自上而下、递归的方式,重复此拆分过程,直到所有,或大多数记录都被分类到特定的类标签下。原创 2024-09-23 08:14:21 · 1651 阅读 · 0 评论 -
python多进程程序设计 之五
如果lock为False,那么对返回对象的访问,将不会自动受到锁的保护,因此它不一定是“进程安全的”。如果lock为False,那么,对返回对象的访问将不会自动受到锁的保护,因此它不一定是“进程安全的”。typecode_or_type 确定返回对象的类型:它是 ctypes 类型,或数组模块使用的一个字符的类型代码。这个代码在两个进程之间共享一个结构数组,因为使用了RawArray,RawArray不包含用于进程同步的锁,所以增加一个锁变量,用来同步两个进程对数组的存取。读/写值可能是非原子的。原创 2024-09-19 09:28:26 · 2088 阅读 · 0 评论 -
python多进程程序设计 之三
这意味着被唤醒的一个或多个线程,不会立即从其 wait() 调用中返回,而是仅在调用 notify() 或 notify_all() 的线程最终放弃锁的所有权时,返回。事件管理一个标志,可以使用 set() 方法将其设置为 true,并使用clear() 方法,将其重置为 false。事件对象管理一个内部标志,可以使用 set() 方法将其设置为 true,并使用clear() 方法将其重置为 false。随后,调用 wait() 的线程将阻塞,直到调用 set() 再次将内部标志设置为 true。原创 2024-09-19 09:27:31 · 1321 阅读 · 0 评论 -
python多进程程序设计 之二
词法: concurrent.futures.ProcessPoolExecutor(max_workers=None, mp_context=None, initializer=None, initargs=(), max_tasks_per_child=None)timeout 可以是 int 或 float。规划可调用函数fn运行,*args, **kwargs作为函数的产生, 即,fn(*args, **kwargs) ,并返回一个Future 对象,该Future 对象表示可调用函数执行情况。原创 2024-09-17 09:24:27 · 1404 阅读 · 0 评论 -
python多进程程序设计 之四
如果authkey不是 None,则它应该是一个字节串,并将用作基于HMAC的身份验证质询的密钥。如果您使用 JoinableQueue,则必须为从队列中删除的每个任务调用 JoinableQueue.task_done() ,否则用于计算未完成任务数量的信号量最终可能会溢出,引发异常。与其他 Python 队列实现的一个区别是,multiprocessing队列使用pickle,序列化放入其中的所有对象。接受listener对象的绑定套接字,或命名管道上的连接,并返回Connection对象。原创 2024-09-17 06:21:13 · 851 阅读 · 0 评论
分享