问题列表 - 第318074页

将 Julia DataFrame 转换为字节数组以进行压缩

因此,我从 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为字节数组以便能够保存到磁盘?

julia dataframes.jl

2
推荐指数
1
解决办法
43
查看次数

在 JavaFX 画布上绘制大量动画形状时如何优化渲染性能

我在 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)

graphics performance javafx canvas draw

5
推荐指数
1
解决办法
82
查看次数

C# 中的“非托管”约束是否与非托管资源和垃圾收集器相关?

我一直在研究unmanagedC#中的约束,它在我脑海中提出了一个问题:unmanaged约束是否与“非托管资源”和垃圾收集器的管理有关?

根据 Microsoft 关于 .NET 垃圾收集器的文档,它指出:

  • “对于应用程序创建的大多数对象,您可以依靠 .NET 垃圾收集器来处理内存管理。但是,当您创建包含非托管资源的对象时,您必须在使用完这些资源后显式释放这些资源。” 清理非托管资源- .NET | 微软学习

有人可以澄清“非托管”约束与垃圾收集器对非托管资源的管理之间是否有直接关系吗?

.net c# computer-science garbage-collection unmanaged

5
推荐指数
0
解决办法
200
查看次数

为什么重复需要拥有号码?

看看这段代码:

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. 对于程序员来说,体验会更好。

reference rust

-1
推荐指数
1
解决办法
54
查看次数

为什么无法使用 lapply 在包装函数中调用子集

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 …

r

4
推荐指数
1
解决办法
112
查看次数

if 和 else 在 Polars-arrow 0.37.0 中具有不兼容的类型

我在使用 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)

rust rust-polars

6
推荐指数
1
解决办法
150
查看次数

与 C++23 结合推导具有自动返回类型的 this 和转换运算符?

我最近注意到一个关于 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

16
推荐指数
1
解决办法
879
查看次数

GCC 消毒剂中可能存在错误?

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)

c gcc clang sanitizer

4
推荐指数
1
解决办法
212
查看次数

VPMASKMOVD 是否会在处理器上为屏蔽元素生成故障?

是否有处理器会VPMASKMOVD为屏蔽元素生成故障?

根据英特尔软件开发人员手册,答案显然是“否”:

故障仅由于导致故障的屏蔽位所需的存储器访问而发生。如果该存储器位置的相应掩码位为0,则不会因引用该存储器位置而发生故障。例如,如果掩码位全部为零,则不会检测到故障。

然而,AMD64 架构程序员手册第 4 卷说道:

未选择从内存加载或存储到内存的元素的异常和陷阱行为取决于实现。例如,给定的实现可能会发出数据断点或零屏蔽且未实际写入的双字的页错误信号。

是否有真正做到这一点的处理器?这是假的吗?这是怎么回事。

x86 assembly avx2 amd-processor

8
推荐指数
0
解决办法
181
查看次数

三次方程的 Sympy 解似乎是错误的并且包含虚数单位。怎么了?

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)

python sympy

1
推荐指数
2
解决办法
108
查看次数