小编4da*_*ong的帖子

这两个结构声明有什么区别?

我对不同教程中的这两种结构感到困惑:

typedef struct complex {
    float real;
    float imag;
} COMPLEX;

typedef struct {
    float real;
    float imag;
} COMPLEX;

COMPLEX c1;
Run Code Online (Sandbox Code Playgroud)

他们都正确吗?为什么?struct 之前是否需要添加小写字母complex?一般情况是怎样的?

c c++ struct typedef declaration

32
推荐指数
3
解决办法
3904
查看次数

如何将字符串矩阵更改为整数矩阵

我有一个这样的投票数据集:

republican,n,y,n,y,y,y,n,n,n,y,?,y,y,y,n,y
republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,?
democrat,?,y,y,?,y,y,n,n,n,n,y,n,y,y,n,n
democrat,n,y,y,n,?,y,n,n,n,n,y,n,y,n,n,y
Run Code Online (Sandbox Code Playgroud)

但它们都是字符串,所以我想将它们更改为整数矩阵并进行统计 hou_dat = pd.read_csv("house.data", header=None)

for i in range (0, hou_dat.shape[0]):
    for j in range (0, hou_dat.shape[1]):
        if hou_dat[i, j] == "republican":
            hou_dat[i, j] = 2
        if hou_dat[i, j] == "democrat":
            hou_dat[i, j] = 3
        if hou_dat[i, j] == "y":
            hou_dat[i, j] = 1
        if hou_dat[i, j] == "n":
            hou_dat[i, j] = 0
        if hou_dat[i, j] == "?":
            hou_dat[i, j] = -1

hou_sta = hou_dat.apply(pd.value_counts)
print(hou_sta)
Run Code Online (Sandbox Code Playgroud)

但是,它显示错误,如何解决?:

Exception has occurred: KeyError
(0, 0)
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x pandas

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

如何按pandas.value_counts对结果进行排序

我想计算在一个数据集中获得 0-5 级的学生人数

我使用这个函数final_grade_num =pd.value_counts(final_grade)来得到类似的结果

4.0    487
3.0    432
2.0    376
5.0    334
1.0    232
0.0    139
Run Code Online (Sandbox Code Playgroud)

但是,我想得到一个排序列表,如

0.0 139, 1.0 232...5.0 334
Run Code Online (Sandbox Code Playgroud)

因为我需要用这个数据集来画图

plt.bar(range(0,6), final_grade_num)
Run Code Online (Sandbox Code Playgroud)

有什么办法可以改吗,我试过用sorted的方法,但是结果显示这取决于学生的数量,而不是等级

python matplotlib pandas

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

如何找出 cpp 中字符串中是否有 std::vector?

我有一个像这样的字符串...hello...world...,我想检查它是否在某些字符串中,所以我将它分割...并保存在 a 中<vector> string,问题是如何按顺序检查 input_str 中的两个项目?

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    string input_str1 = "Good morning, hello, a beautiful world";//true
    string input_str2 = "what a wonderful world, hello!"; //false, but I only can return true
    //item = "...hello...world..."
    vector<string> item;
    item.push_back("hello");
    item.push_back("world");
    bool status = false;
    for (auto sub_item : item)
    {
        cout << sub_item << ' ';
        if (input_str2.find(sub_item) != string::npos) //change str1 to str2 
            status …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

如何从本地路径加载huggingface数据集?

在此网站中举一个简单的例子,https://huggingface.co/datasets/Dahoas/rm-static

如果我想在线加载这个数据集,我只需直接使用,

from datasets import load_dataset
dataset = load_dataset("Dahoas/rm-static") 
Run Code Online (Sandbox Code Playgroud)

如果我想从本地路径加载数据集,那么我下载文件并Files and versions首先从网络上保留相同的文件夹结构,该怎么办?

-data
|-test-00000-of-00001-bf4c733542e35fcb.parquet
|-train-00000-of-00001-2a1df75c6bce91ab.parquet
-.gitattributes
-README.md
-dataset_infos.json
Run Code Online (Sandbox Code Playgroud)

然后,将它们放入我的文件夹中,但加载时显示错误,

dataset_path ="/data/coco/dataset/Dahoas/rm-static"
tmp_dataset = load_dataset(dataset_path)
Run Code Online (Sandbox Code Playgroud)

表明,FileNotFoundError: No (supported) data files or dataset script found in /data/coco/dataset/Dahoas/rm-static.

python huggingface-datasets huggingface huggingface-hub

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

VS Code 上的“模块‘cv2’没有‘cvtColor’成员 pylint(no-member)”

我已经在windows DOS下安装了opencv,在vscode中可以成功导入,但是当我使用这种方法时:cvtColor它显示Module 'cv2' has no 'cvtColor' memberpylint(no-member)

当我运行这段代码时:

cv2_rgb = cv2.cvtColor(val_xyz, cv2.COLOR_XYZ2RGB)
Run Code Online (Sandbox Code Playgroud)

val_xyz = [ 15.4999257 20.91432805 8.15938343]

表明:

Exception has occurred: error
OpenCV(4.2.0) c:\projects\opencv-python\opencv\modules\imgproc\src\color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function '__cdecl cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<3,-1,-1>,struct cv::impl::A0x2c98332e::Set<3,4,-1>,struct cv::impl::A0x2c98332e::Set<0,2,5>,2>::CvtHelper(const class cv::_InputArray &,const class cv::_OutputArray &,int)'
> Invalid number of channels in input image:
>     'VScn::contains(scn)'
> where
>     'scn' is 1
  File "C:\dataset\opencv_hello.py", line 33, in <module>
    cv2_lab = cv2.cvtColor(val_xyz, cv2.COLOR_XYZ2RGB)
Run Code Online (Sandbox Code Playgroud)

python opencv visual-studio-code

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

如果图不是python中的二部图,如何找到最小权重完美匹配

维基中完美匹配的概念:

完美匹配是匹配图的所有顶点的匹配。也就是说,如果图的每个顶点都与匹配的边相关,则匹配是完美的。

所以最小权重完美匹配是权重最小的组合之一。起初,我的想法是遵循贪心算法(注意:我的图是完整的,每个顶点都有到其余顶点的边):

从图中挑选一个顶点,并在每一步中找到它最近的邻居顶点,然后丢弃它们并循环直到图中没有顶点。然而,除非计算 n! 次:

while odd_vert:
    v = vertices.pop()
    length = float("inf")
    closest = 0
    for u in odd_vert:
        if graph[v][u]["weight"] < length:
            length = graph[v][u]["weight"]
            closest = u
    graph_minimum_match.add_edge(v, closest, weight = length)
Run Code Online (Sandbox Code Playgroud)

我在 networkx 中找到了一些函数,但它要求图形是二分的:

nx.algorithms.bipartite.matching.minimum_weight_full_matching(G, top_nodes=None, weight='weight')
Run Code Online (Sandbox Code Playgroud)

此外,找到最大的权重匹配:

nx.algorithms.matching.max_weight_matching(G, maxcardinality=True)
Run Code Online (Sandbox Code Playgroud)

然后,我搜索了一篇关于开花信仰传播的文章,但我不确定它是否可以实现,所以有什么想法吗?

algorithm graph networkx graph-algorithm python-3.x

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

为什么合并后对向量进行排序时显示非法内存位置?

我尝试在合并两个向量后对新向量进行排序,代码如下,

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>

using namespace std;

void vec_output(vector <int> vec_input)
{
    
    for (int i = 0; i < vec_input.size(); i++)
    {
        cout << vec_input[i] << ' ';
    }
    cout << endl;
}

int main(){
    vector <int> v1{2,3,1};
    vector <int> v2{5,4,6};
    vector <int> v3;
    set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
    sort(v3.begin(), v3.end());
    vec_output(v3);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,它显示错误:Exception has occurred. Segmentation fault,我知道这可能是由于访问未知内存引起的,但是怎么办?

c++ stl

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