小编don*_*lan的帖子

在Weka中以编程方式获取Xmeans clusterer输出

在Weka中使用Kmeans时,可以在模型的结果输出上调用getAssignments()以获取每个给定实例的集群分配.这是一个(截断的)Jython示例:

>>>import weka.clusterers.SimpleKMeans as kmeans
>>>kmeans.buildClusterer(data)
>>>assignments = kmeans.getAssignments()
>>>assignments
>>>array('i',[14, 16, 0, 0, 0, 0, 16,...])
Run Code Online (Sandbox Code Playgroud)

每个簇编号的索引对应于实例.因此,实例0在集群14中,实例1在集群16中,依此类推.

我的问题是:Xmeans有类似的东西吗?我在这里浏览了整个API ,但没有看到类似的东西.

cluster-analysis weka xmeans

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

将熊猫浮点系列转换为 int

我正在为学习者离散化我的系列。我真的需要这个系列是浮动的,我真的需要避免 for 循环。

如何将这个系列从 float 转换为 int?

这是我目前失败的功能:

def discretize_series(s,count,normalized=True):
    def discretize(value,bucket_size):
        return value % bucket_size
    if normalized:
        maximum = 1.0
    else:
        minimum = np.min(s)
        s = s[:] - minimum
        maximum = np.max(s)
    bucket_size = maximum / float(count)
Run Code Online (Sandbox Code Playgroud)

这是导致函数失败的行:

    s = int((s[:] - s[:] % bucket_size)/bucket_size)
Run Code Online (Sandbox Code Playgroud)

int() 会导致转换错误:我无法将 pandas 系列转换为 int 系列。

    return s
Run Code Online (Sandbox Code Playgroud)

如果我删除 int(),该函数就可以工作,所以我可能只是看看我是否可以让它工作。

python numpy pandas

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

C++默认参数乱序?

假设我有:

void f(bool option1 = false, bool option2 =false, bool option3 = false) 
{
     ... 
}
Run Code Online (Sandbox Code Playgroud)

我想打电话给:

f(option2=true);
Run Code Online (Sandbox Code Playgroud)

这在C++中是否可行?

c++

5
推荐指数
2
解决办法
378
查看次数

从数组映射返回对象

假设我可以硬编码以下内容:

const data = [ { a: 0, b: 1}, {a:2,b:3},... ]
Run Code Online (Sandbox Code Playgroud)

但是我有一个数组中的数据,我想写如下内容:

const data = my_arr.map((element,index) => { a:element, b:index});
Run Code Online (Sandbox Code Playgroud)

如何从数组映射中产生这种对象?

javascript arrays dictionary object

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

GNU Parallel:如何将作业 ID 传递给命令

假设我在从标准输入接收的一组项目上并行运行 gnu,并根据某些标准进行拆分:

cat content | parallel -j 4 my_command
Run Code Online (Sandbox Code Playgroud)

如何访问作业编号,以便我可以将并行执行的作业编号/ID 作为参数传递给命令(以便每个并行执行块具有唯一编号):

cat content | parallel -j 4 my_command -n ???
Run Code Online (Sandbox Code Playgroud)

(这甚至可能吗?现在查看手册页)

gnu-parallel

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

C++:如何组合多个概念?

这个标题似乎受到了很多批评。但是,我发现这个概念很难搜索。它在 C++ 领域也相对较新,学校仍在教授C++11.

避免 XY 问题的动机和背景

现在,我正在检测一个嵌入式设备项目,concepts作为逆向工程(和学习)过程的一部分。设备库和设备 API 的问题在于,有各种各样的编程禁忌来自于文字设备(或设备产品线)功能:

  • 硬编码设置
  • 扩展
  • 设备功能的特定捆绑或子集
  • 它利用宏和辅助类来构建结构(structs building structs)
  • 没有简化的假设:跨平台和设备测试的大量错误处理包袱
  • 等等。

代码结束了——无论开发人员如何努力,我知道不可能有更好的结果——非常冗长和复杂。换句话说,它在功能上很简单,但很难理解。

通常,我可能会形成structs包装包并隐藏硬编码内容,但现在我正在使用concepts它们,因为它们允许我构建(一个单独的开发人员)可以在知识方面更有效地更改或更新的接口命名空间. 我对使用设备的了解越少越好。

通过概念,我还可以保护我编写的代码,这些代码取决于我的概念化内容,以免设备制造商和 api 提供商传播更改。


在利用这些概念时,我试图尽早选择如何构建我的代码。

为了做出决定,我需要知道是否concepts可以原子地编写,然后组合成conceptual structures. 例如:

// real code

// Concepts

template < typename ContextInfo>
concept ExtensibleDeviceContext = requires(ContextInfo & contextInfo, const char * name, 
                                           bool optional, void * devFeatures)
{
    { contextInfo.addDeviceExtension(name, optional, devFeatures)};
};

template< typename ContextInfo>
concept ExtensibleInstanceContext = requires(ContextInfo & …
Run Code Online (Sandbox Code Playgroud)

c++ composition c++-concepts c++20

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

使用Base64UrlEncode的语句

我试图通过代码发送电子邮件,我遇到了障碍.当Base64UrlEncode出现红色时,我正在解决这个问题.我的代码中有相同的using语句.

using System;
using System.IO;
using System.Net.Mail;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MyCompany.Sample.EmailConnector.Model;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail.v1.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
...
    public static Message createGmailMessage(AE.Net.Mail.MailMessage mailMessage)
    {
        var messageString = new StringWriter();
        mailMessage.Save(messageString);
        Message gmailMessage = new Message();
        gmailMessage.Raw = Base64UrlEncode(messageString.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

如何启用"Base64UrlEncode"?

c# gmail-api

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

在2d数组中沿轴的Numpy百分比

我有一个计数矩阵,

import numpy as np
x = np.array([[ 1,2,3],[1,4,6],[2,3,7]])
Run Code Online (Sandbox Code Playgroud)

我需要沿轴的总百分比= 1:

for i in range(x.shape[0]):
    for j in range(x.shape[1]):
        x[i,j] = x[i,j] / np.sum(x[i,:])
Run Code Online (Sandbox Code Playgroud)

以numpy广播形式.

目前,我有:

x_sums = np.sum(x,axis=1)
for j in range(x.shape[1]):
     x[:,j] = x[:,j] / x_sums[:]
Run Code Online (Sandbox Code Playgroud)

这使得大部分复杂性变成了numpy代码...但是一个numpy one liner最好.

也,

def percentages(a):
    return a / np.sum(a)

x_percentages = np.apply_along_axis(percentages,1,x)
Run Code Online (Sandbox Code Playgroud)

但这仍然涉及python.


 np.linalg.norm
Run Code Online (Sandbox Code Playgroud)

就发生的事情而言,非常接近,但他们只有8个硬编码规范,其中不包括总数的百分比.

然后就是np.percentile,它再次接近......但它正在计算排序的百分位数.

python arrays numpy

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

如何在Linux上安装张量流

在TensorFlow主网站上,您必须专门启用gpu:

# Ubuntu/Linux 64-bit, GPU enabled:
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl
Run Code Online (Sandbox Code Playgroud)

在anaconda网站上,您只需要安装张量流,而没有指示这是GPU还是CPU版本:

conda install -c https://conda.anaconda.org/jjhelmus tensorflow
Run Code Online (Sandbox Code Playgroud)

运行Anaconda命令后,我决定需要确保它是GPU版本,因此我尝试在anaconda文件夹中运行pip命令。

当我运行pip命令时,出现以下错误:

tensorflow-0.7.1-cp34-none-linux_x86_64.whl在此平台上不受支持


我不知道轮子是什么...但是我有一台新的笔记本电脑,配备多核i7(去年7月)和笔记本电脑nvidia卡,安装了5.2的计算等级和CUDA(Ubuntu 15.10)。

必须有一个与我的规格兼容的版本。

如何将张量流安装升级到GPU版本?

更新资料

当我运行:时import pip; print(pip.pep425tags.get_supported()),支持的轮子包括

cp35

但是TensorFlow可以使用的轮子是cp34 ...那么这是否意味着GPU上的TensorFlow对我的计算机不起作用?

python tensorflow

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

Eigen3和Clion:如何在Clion ide中显示矩阵内容?

我已按照说明更新 GDB 以与 Eigen3 一起使用。但是,CLion IDE 无法在调试面板中加载特征矩阵的内容。

应该是一个快速验证和调试结果的过程正在变成一个耗时的手动打印过程(或更糟糕:在 cygwin 的终端中以交互模式运行 gdb)。

一定有办法让 eigen 能够与 clion 的调试器一起使用吗?

eigen3 clion

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