问题列表 - 第317962页

通过执行本机极坐标命令而不是 UDF 函数来优化相似度分数的计算

免责声明 (1):这个问题支持这个 SO。在两位用户请求详细说明我的案例后。

免责声明 (2) - 29/11 添加:到目前为止,我已经看到了两种利用该功能的解决方案(在此 SO 中提出的以及支持性的解决方案)explode()。根据我对整个数据集(约 300 万行数据)所做的一些基准测试,RAM 确实会爆炸explode(),因此我将在数据集的样本上测试该函数,如果它有效,我将接受那些可能在较小的数据集上进行实验的人的方法解决方案表。

输入数据集(约 300 万行)来自80_000 个 IMDb 电影的 ml-latest 数据集以及 330_000 个用户的相应评分(您可以从此处ratings.csv下载 CSV 文件- 891mb)。

polars我使用like加载数据集movie_ratings = pl.read_csv(os.path.join(application_path + data_directory, "ratings.csv")),application_path并且data_directory是本地服务器上的父路径。

阅读数据集后,我的目标是生成用户在所有其他用户之间的余弦相似度。为此,首先我必须将评级表(约 300 万行)转换为每个用户 1 行的表。因此,我运行以下查询

## 1st computation bottleneck using UDF functions (2.5minutes for 250_000 rows)
users_metadata = movie_ratings.filter(
        (pl.col("userId") != input_id) #input_id is a random userId. I prefer …
Run Code Online (Sandbox Code Playgroud)

python user-defined-functions python-polars

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

图中最外层 Voronoi 多边形的透明或均匀颜色

我正在尝试删除 Voronoi 图中的外部多边形。主要情节是这样的:

require(ggplot2)
require(ggvoronoi)
set.seed(2023)

N <- 80
x <- runif(N)
y <- runif(N)
df <- data.frame(x, y)
df$dist <- rnorm(N)

ggplot(df, aes(x, y, fill = dist)) +
    geom_voronoi() +
    stat_voronoi(geom = "path") +
    theme_void()
Run Code Online (Sandbox Code Playgroud)

主图

如果我对轴设置限制,就会发生接近我想要的情况。然而,仍然填充了一些外部多边形:

ggplot(df, aes(x, y, fill = dist)) +
    geom_voronoi() +
    stat_voronoi(geom = "path") +
    theme_void() + 
    xlim(0.1, 0.9) + 
    ylim(0.1, 0.9)
Run Code Online (Sandbox Code Playgroud)

[有限图片

隔离/识别图形边缘周围最外层的多边形并使它们透明或统一颜色的最佳方法是什么?

voronoi r ggplot2 r-sf

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

将方法转换为 C# 中的泛型方法

如何将此方法转换为通用形式。由于对象的属性,我无法这样做。

private async Task<T> GetSalesforceMachineData<T>()
{
    T machineData = await CallSalesforceApi<T>();
    while (!machineData.done)
    {
        var encodedUrl = HttpUtility.UrlEncode(machineData.nextRecordsUrl);
        T nextData = await GetNextData<T>(encodedUrl);
        machineData.done = nextData.done; //not able to convert because of these properties
        machineData.nextRecordsUrl = nextData.nextRecordsUrl;//not able to convert because of these properties
        machineData.records.AddRange(nextData.records);//not able to convert because of these properties
    }
    return machineData;
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西

private async Task<T> GetSalesforceMachineData<T>()
{
    T machineData = await CallSalesforceApi<T>();
    while (!machineData.done)
    {
        var encodedUrl = HttpUtility.UrlEncode(machineData.nextRecordsUrl);
        T nextData = await GetNextData<T>(encodedUrl);
        machineData.done …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

0
推荐指数
1
解决办法
64
查看次数

如何解决实例化后的专业化问题?

在我的代码中,我想仅使用一个模板参数(如果可能)创建无序集,如下所示:

std::unordered_set<std::shared_ptr<Foo>> my_foos;
Run Code Online (Sandbox Code Playgroud)

问题是我的Foo班级也有一个类型为 的班级成员std::unordered_set<std::shared_ptr<Foo>>。具体来说,我的Foo课程看起来像这样:

#include<unordered_set>
#include<memory>

class Foo {
  explicit Foo(int val) : val_(val) {}
  void AddFoo(Foo& foo){foos.insert(std::make_shared<Foo>(foo));}
  std::unordered_set<std::shared_ptr<Foo>> foos;
  int val_;
};

namespace std {
template <>  
struct hash<shared_ptr<Foo>> {
  size_t operator()(const Foo shared_ptr<Foo>& foo) const {
    return hash<int>()(foo->val_);
  }
};

template <>
struct equal_to<Foo> {
  bool operator()(const Foo shared_ptr<Foo>& lhs, const Foo shared_ptr<Foo>& rhs) const {
    return lhs->val_ == rhs->val_;
  }
};
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误

error: specialization of 'std::hash<std::shared_ptr<Foo> >' after instantiation …
Run Code Online (Sandbox Code Playgroud)

c++ template-specialization template-instantiation

0
推荐指数
1
解决办法
73
查看次数

Angular 17 构造函数与 OnInit

与 Constructor 和 ngOnInit 之间的差异相关但不相同。

在 Angular 16 和 17 中,我们现在可以使用takeUntilDestroyed运算符和信号。这两种方法似乎在注入器上下文中效果最好,或者至少具有不需要传递其中一种的优点。

问题

所以问题是(再次)我们应该将初始化放在构造函数(或成员字段)中还是仍然使用OnInit?其次,使用构造函数而不是有任何陷阱吗OnInit?

注意:对于初始化,我的意思是使用httpClient来获取数据以显示在页面上。使用数据映射等设置 RxJS 管道。读取路由参数等。

搁置以下内容:

  • 如果我们想使用变量,我们需要使用OnInitorOnChanges@Input()
  • 个人喜好

附加信息

根据旧的 Angular.io 站点的组件生命周期文档:

组件的构造应该便宜且安全。例如,您不应该在组件构造函数中获取数据。您不必担心新组件在测试中创建时或在您决定显示它之前会尝试联系远程服务器。ngOnInit() 是组件获取其初始数据的好地方。

但新的 Angular.dev 站点中不存在此文档。

他们的新教程之一也在构造函数中进行了数据调用:

  constructor() {
    this.housingService.getAllHousingLocations().then((housingLocationList: HousingLocation[]) => {
      this.housingLocationList = housingLocationList;
      this.filteredLocationList = housingLocationList;
    });
  }
Run Code Online (Sandbox Code Playgroud)

概括

Angular 16/17 似乎正朝着在注入上下文(成员字段或构造函数)中完成更多初始化的方向发展。这对性能、稳定性、未来发展有影响吗?

constructor typescript angular angular-signals

3
推荐指数
1
解决办法
1857
查看次数

ASP.NET Core 8 OpenID Connect - User.Identity 上缺少 SUB 声明

我将 ASP.NET MVC Core 7.0 网站升级到 ASP.NET MVC Core 8.0。该站点使用 OpenID Connect 身份提供商进行登录。

更新后,我的sub索赔在集合中丢失了ClaimsPrincipal.Identity.Claims。我会得到:

System.NullReferenceException:“未将对象引用设置为对象的实例。”

当试图获得sub索赔时:

string userId = User.Identity.FindFirst("sub").Value;
Run Code Online (Sandbox Code Playgroud)

经过进一步检查,我注意到该sub声明实际上被重新映射到另一个不同的声明:

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

尽管在启动配置中删除了默认的 JWT 令牌映射(以前在 ASP.NET Core 7.0 及更早版本中有效),但还是会发生这种情况:

System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

c# asp.net asp.net-core-mvc asp.net-core

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

如何检索某个单词出现的所有文本

我有一个由出现在不同文本中的单词组成的数据框。

     word text
1     a    1
2     a    2
3     a    5
4     b    1
5     b    3
6     c    1
7     c    3
8     c    4
9     d    4
10    e    2
11    e    4
12    f    3
13    g    2
14    h    5
15    i    5
Run Code Online (Sandbox Code Playgroud)

我希望每个单词都有一个输出,如下所示:

a
[1] 1 2 5
b
[1] 1 3 
...
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以同时检索每个单词的所有文本,而不必每次我想查找特定单词的文本时都键入“a”或“b”?非常感谢!

split r list

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

在 Netlogo 模拟中将抽象值量化/转换为标准单位

我正在 NetLogo 中从事一个模拟项目,并遇到了有关某些值的量化的挑战。具体来说,我试图了解如何有效地将抽象模拟测量转换为现实世界的单位。以下是我的主要担忧:

时间转换:在 NetLogo 中,时间通常以“刻度”表示,但我不确定如何将其转换为现实世界的单位,如秒或小时。这种转换是否有标准方法或公式,或者它完全取决于模拟的上下文吗?

物理量:另一个方面是将模拟中“肌肉质量”等属性的抽象测量值转换为千克或克等现实单位。由于 NetLogo 本身并不定义这些单位,因此我不确定如何使这些转换有意义且准确。

我的问题是:

  • NetLogo 中是否有将这些抽象量转换为现实世界单位的指南?
  • 我应该为这些单位分配任意值,还是有更系统的方法来确保模拟的一致性和真实性?

您在 NetLogo 或其他模拟环境中进行类似转换的经验中有什么见解或示例吗?

netlogo unit-conversion

0
推荐指数
1
解决办法
51
查看次数

C++ 中奇怪的有符号/无符号整数除法

int main(int argc, char *argv[]) {
    int i = -100;
    unsigned u = 10;

    cout << "i = " << i << endl;

    i *= u;
    cout << "i*10 = " << i << endl;

    i /= u;
    cout << "i = " << i << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果输出不是这样的话,我就不会在这里问这个问题:

i = -100
i*10 = -1000
i = 429496629
Run Code Online (Sandbox Code Playgroud)
  • 在乘法的情况下,无符号会隐式转换为有符号。到目前为止,一切都很好。
  • 然而,在除法的情况下,有符号会隐式转换为无符号,执行无符号除法;然后转换回签名。

有谁知道为什么会发生这种情况?因为这对我来说没有任何意义。

PS 预期的行为是通过显式类型转换实现的:i /= (int) u;

c++

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

确定当前时间在小时之间

我觉得这真的很容易,但我的大脑由于某种原因不工作。我有一个功能,用户可以选择运行的时间段(以小时为单位)。我需要检查当前时间是否在这些时间之间:

int currentHour = LocalDateTime.now().getHour(); // 21 (9pm)

int startHour = 20; // (8pm)
int endHour = 1; // (1am)

if (currentHour >= startHour && currentHour < endHour)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

java

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