因此,我从 csv 加载了两个数据集,然后使用以下命令合并它们leftjoin:
using CSV
using DataFrames
using CodecZstd
df1 = CSV.read(joinpath(root, "data", "raw", "df1.csv"), DataFrame)
df2 = CSV.read(joinpath(root, "data", "raw", "df2.csv"), DataFrame)
merged = leftjoin(df1, df2, on=:id)
Run Code Online (Sandbox Code Playgroud)
现在我想将合并的数据帧作为.zst现在我想将合并的数据帧作为压缩文件(Zstandard 压缩)
我成功地首先写入,.csv然后读取,然后再次写入.zst,但是有没有办法直接将 a 转换DataFrame为字节数组以便能够保存到磁盘?
我在 HTML5 演示中使用 Javafx 实现相同的效果,但使用 Javafx 的帧速率非常低
我如何优化它,我是否写错了或者是否有其他更好的方法来实现它。
这是原始的 html5 演示项目:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>snows</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<style>
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="jsi-snow-container" class="container"></div>
<script>
var RENDERER = {
SNOW_COUNT: { INIT: 100, DELTA: 1 },
BACKGROUND_COLOR: 'hsl(%h, 50%, %l%)',
INIT_HUE: 180,
DELTA_HUE: 0.1,
init: function () {
this.setParameters();
this.reconstructMethod();
this.createSnow(this.SNOW_COUNT.INIT …Run Code Online (Sandbox Code Playgroud) 我一直在研究unmanagedC#中的约束,它在我脑海中提出了一个问题:unmanaged约束是否与“非托管资源”和垃圾收集器的管理有关?
根据 Microsoft 关于 .NET 垃圾收集器的文档,它指出:
有人可以澄清“非托管”约束与垃圾收集器对非托管资源的管理之间是否有直接关系吗?
看看这段代码:
let some_number: usize = 5;
let some_string = "abc".repeat(&some_number);
Run Code Online (Sandbox Code Playgroud)
我收到编译错误:
预期
usize,发现&usize
我想知道,是否有任何理由要求repeat重复次数具有自有价值?如果我理解正确,如果repeat需要引用,我可以同时传递some_number(Rust 会自动传递引用)或&some_number. 对于程序员来说,体验会更好。
subset_base是 r 基函数的简单形式subset()。该示例取自 Advanced R 第 20.6.1 章。
这个函数本身工作得很好:
subset_base <- function(data, rows) {
rows <- substitute(rows)
rows_val <- eval(rows, data, parent.frame())
data[rows_val, , drop = FALSE]
}
my_df <- data.frame(x = 1:3)
subset_base(my_df, x == 1)
#> x
#> 1 1
Run Code Online (Sandbox Code Playgroud)
然而,当我们构建一个包装函数时apply_subset,在这个包装函数中定义一些值并在提供参数时zzz调用(在同一函数中)找不到它。lapply()subset_basezzz
我想更好地理解为什么zzz找不到。我的思维模型如下: subset_base被调用,lapply被调用apply_subset。在subset_base我们内部评估rows所提供的参数,data.frame data该参数会自动转换为环境。该环境由调用环境封装parent.frame()。这应该是lapply. 我认为这个环境再次有lapply作为其父级的调用环境。这将是 的执行环境apply_subset。但事实似乎并非如此,因为如果这是真的,zzz …
我在使用 Polars 版本 0.37.0 并运行 Cargo Clippy 进行代码检查时遇到问题。该错误出现在 Polars-arrow-0.37.0 箱中,特别是 utf8_to.rs 文件中。以下是详细的错误消息:
error[E0308]: `if` and `else` have incompatible types
--> /Users/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polars-arrow-0.37.0/src/compute/cast/utf8_to.rs:101:9
|
98 | let buffers = if uses_buffer {
| ___________________-
99 | | Arc::from([arr.values().clone()])
| | --------------------------------- expected because of this
100 | | } else {
101 | | Arc::from([])
| | ^^^^^^^^^^^^^ expected an array with a fixed size of 1 element, found one with 0 elements
102 | | };
| |_____- `if` and `else` …Run Code Online (Sandbox Code Playgroud) 我最近注意到一个关于 C++23推导此功能的奇怪问题。
S假设我们有一个带有简单转换运算符的结构:
struct S {
operator int() { return 42; }
};
int i = S{};
Run Code Online (Sandbox Code Playgroud)
由于42是 类型int,我们可以将转换运算符的返回类型指定为auto,例如:
struct S {
operator auto() { return 42; }
};
int i = S{};
Run Code Online (Sandbox Code Playgroud)
这完全没问题。如果我们应用C++23来推导它的这个特性,那就是:
struct S {
operator auto(this S) { return 42; }
};
int i = S{};
Run Code Online (Sandbox Code Playgroud)
这也完全没问题。但是,当我替换this S为this auto:
struct S {
operator auto(this auto) { return 42; } …Run Code Online (Sandbox Code Playgroud) c++ language-lawyer type-deduction c++23 explicit-object-parameter
gcc我总是在开发过程中编译我的程序:
gcc -g -Wall -Wextra -std=c2x -fsanitize=address,undefined
Run Code Online (Sandbox Code Playgroud)
今天我注意到地址清理程序会随机检测我的程序中的 SEGV。我找不到错误,所以我几乎删除了所有内容(我认为我可能弄错了 c23 的东西,因为我已经几个月没有碰过它了)并删除了undefined sanitizer.
问题仍然存在。
然后我尝试用 clang 进行编译,问题就消失了(至少在我的机器上运行了 10000 次)。所以我猜 GCC 有问题吗?或者我的代码中有一些奇怪的错误(但我非常怀疑下面的代码)。任何人都可以重现这个,或者指出我犯的错误吗?
生成文件:
gcc: main.c
gcc main.c -g -Wall -Wextra -std=c2x -fsanitize=address
clang: main.c
clang main.c -g -Wall -Wextra -std=c2x -fsanitize=address
Run Code Online (Sandbox Code Playgroud)
主要.c:
#include <stdio.h>
#include <stdlib.h>
int main(void) { return EXIT_SUCCESS; }
Run Code Online (Sandbox Code Playgroud)
测试.sh:
#!/bin/bash
for i in {1..1000}; do
echo $i
./a.out 2>> log.log
done
Run Code Online (Sandbox Code Playgroud)
错误:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==26035==ERROR: AddressSanitizer: SEGV on unknown address 0x62f205f20e78 (pc 0x7d61693e138f bp 0x000000000000 …Run Code Online (Sandbox Code Playgroud) 是否有处理器会VPMASKMOVD为屏蔽元素生成故障?
根据英特尔软件开发人员手册,答案显然是“否”:
故障仅由于导致故障的屏蔽位所需的存储器访问而发生。如果该存储器位置的相应掩码位为0,则不会因引用该存储器位置而发生故障。例如,如果掩码位全部为零,则不会检测到故障。
然而,AMD64 架构程序员手册第 4 卷说道:
未选择从内存加载或存储到内存的元素的异常和陷阱行为取决于实现。例如,给定的实现可能会发出数据断点或零屏蔽且未实际写入的双字的页错误信号。
是否有真正做到这一点的处理器?这是假的吗?这是怎么回事。
from sympy import *
from sympy.abc import x
f = x**3 - 3*x + 1
res = solve(f)
print(res)
Run Code Online (Sandbox Code Playgroud)
但是,它给出的虚数单位答案不正确。检查 viasubs也不返回 0。
更新:
资源:
[-3/((-1/2 - sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)) - (-1/2 - sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)/3,
-(-1/2 + sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)/3 - 3/((-1/2 + sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)),
-(27/2 + 27*sqrt(3)*I/2)**(1/3)/3 - 3/(27/2 + 27*sqrt(3)*I/2)**(1/3)]
Run Code Online (Sandbox Code Playgroud)
子检查:
>>> print(f.subs(x, res[0]))
1 + (-1/2 - sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3) + (-3/((-1/2 - sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)) - (-1/2 - sqrt(3)*I/2)*(27/2 + 27*sqrt(3)*I/2)**(1/3)/3)**3 + 9/((-1/2 …Run Code Online (Sandbox Code Playgroud)