小编din*_*elk的帖子

为什么在python中的计算机之间的转换规则不同?

我正在Mac上运行python 2.7,我正在与其他人使用Ubuntu进行组编码项目.由于投射规则错误,他们编写的代码每隔一段时间就无法在我的计算机上运行:

    273     # Apply column averages to image
--> 274     img[:middle] *= (bg[0]/np.tile(topCol, (middle,1)))
    275     img[middle:] *= bg[1]/np.tile(botCol, (middle,1))
    276 

TypeError: Cannot cast ufunc multiply output from dtype('float64') to dtype('int16') with casting rule 'same_kind'
Run Code Online (Sandbox Code Playgroud)

我不认为你需要具体细节,因为这发生在几个不同数字类型的不同地方.

它适用于他们所有的电脑没问题.我写的所有东西都适合他们,但他们经常写的东西对我来说都不起作用.

有没有理由说我们的机器不同意,有没有办法可以改变我的方式?

谢谢!

python macos numpy

17
推荐指数
2
解决办法
6411
查看次数

在C++中将1D数组作为2D数组访问

这困扰了我一段时间.很多时候,我发现自己制作了一个大缓冲区来保存"最大"的数据量.这有助于避免每次下一个数据集的大小发生变化时动态分配和释放缓冲区.

例如,假设我的数组对于实际有用的大小来说太大了,但我知道有用数据的长度.

int amountOfData = 9;
char data1D[100] = some data that is only 9 bytes long stored in a 100 byte array
Run Code Online (Sandbox Code Playgroud)

假设我有一个算法,我想在这个使用2D数组索引的数据集上运行.所以我希望能够按如下方式访问数据:

cout << "I am accessing this data as a 2D array: " << data1D[0][1] << endl;
Run Code Online (Sandbox Code Playgroud)

让我们说这个算法我知道2D数组的xlength和ylength将是:

int xlength = 3;
int ylength = 3;
Run Code Online (Sandbox Code Playgroud)

对于这个迭代,因为amountOfData = 9.但是,下一次迭代的长度可能不同.IE浏览器.他们可以xlength = 4ylength = 4给予amountOfData = 16.

我想做某种类型的转换,允许我使用2D数组索引来转换1D数组.我知道我的初始1D长度有多长,它告诉我我的2D xlength和它有多长ylength,所以这应该很容易做到而不使用newmalloc只要最初的100个字节足够长以容纳任何有用的数据集给我.

我意识到:

char** data2d = (char**) …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays casting multidimensional-array

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

在Python中循环遍历图像的每个像素的更快方法?

我需要遍历2560x2160 2D numpy阵列(图像)的每个像素.我的问题的简化版本如下:

import time
import numpy as np

t = time.clock()
limit = 9000
for (x,y), pixel in np.ndenumerate(image):
    if( pixel > limit )
        pass
tt = time.clock()
print tt-t
Run Code Online (Sandbox Code Playgroud)

这在我的电脑上完成了大约30秒的讨厌.(酷睿i7,8GB内存)有没有更快的方法来执行这个内部'if'语句循环?我只对超过一定限度的像素感兴趣,但我确实需要它们的(x,y)索引和值.

python time loops numpy image

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

在Mac OSX上设置System V消息队列大小

我目前在Mac OSX上使用System V消息队列,并且无法将队列大小设置为大于2048字节的值.这是一个可编译的示例test.c:

#include <stdio.h>
#include <sys/msg.h>
#include <stdlib.h>

int main() {
  // get a message queue id
  int id = msgget(IPC_PRIVATE,IPC_CREAT|0600);
  if (-1 == id)
      exit(1);

  // get message queue data structure
  struct msqid_ds buf;
  if (-1 == msgctl(id, IPC_STAT, &buf))
      exit(1);
  printf("size is %lu bytes\n", buf.msg_qbytes);

  // set new buffer size
  buf.msg_qbytes = 2750;
  printf("setting size to %lu bytes\n", buf.msg_qbytes);
  if (-1 == msgctl(id, IPC_SET, &buf))
      exit(1);

  // check updated message queue data structure
  if (-1 …
Run Code Online (Sandbox Code Playgroud)

c c++ macos ipc message-queue

11
推荐指数
1
解决办法
3734
查看次数

C++在全局范围内将语言环境重置为"C"?

在我正在进行的项目中,我链接到一个专有的动态库.一旦我运行库的初始化函数,记录和打印数字的行为就会改变.

逗号每三位小数插入一次.IE浏览器.

cout << 123456789 << endl
Run Code Online (Sandbox Code Playgroud)

用于打印出来123456789,现在打印出来123,456,789.这非常令人讨厌,因为这种行为不是我想要的.

这个问题不仅在我正在编译的二进制文件中很明显,而且还出现在我链接到它的所有coutsstringstreams库中.

我在调用initialize函数后尝试使用这行代码

setlocale(LC_ALL,"C");
Run Code Online (Sandbox Code Playgroud)

认为它可能会将我的语言环境重置为默认值; 但无济于事.逗号坚持!!

这段代码:

std::cout.imbue(std::locale("C"));
Run Code Online (Sandbox Code Playgroud)

用于重置我的couts每个stringstream应用程序的语言环境.但是,我真的需要调用我链接到的每个库中的imbue每个stringstream声明吗?有些库是专有的,我实际上无法更改其源代码.

必须有办法将语言环境重置为"C"全局?

c++ locale cout stringstream comma

10
推荐指数
1
解决办法
2108
查看次数

错误:'struct sigevent'没有名为'sigev_notify_thread_id'的成员

以下"玩具"代码表示我在使用POSIX计时器的较大代码库中遇到的问题.

#include <time.h>
#include <errno.h>
#include <signal.h>
#include <iostream>

using namespace std;

int main()
{   
    struct sigevent sevp;
    long threadId = 5;

    sevp.sigev_notify = SIGEV_THREAD_ID;
    sevp.sigev_notify_thread_id = threadId;

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

当我尝试g++在Linux机器上使用它编译时,我收到错误:

error: ‘struct sigevent’ has no member named ‘sigev_notify_thread_id’
Run Code Online (Sandbox Code Playgroud)

有原因吗?让我相信sigevent结构中有一个名为的成员sigev_notify_thread_id.

c++ linux signals timer

8
推荐指数
1
解决办法
2003
查看次数

在cout中禁用逗号?

在我正在进行的项目中,我链接到一个专有的动态库.一旦我运行库的initialize功能,记录和打印数字的行为就会改变.

逗号每三位小数插入一次.IE浏览器.

cout << 123456789 << endl
Run Code Online (Sandbox Code Playgroud)

用于打印出来123456789,现在打印出来123,456,789.这非常令人讨厌,因为这种行为不是我想要的.

经过一些研究后,我怀疑是一个地方问题.我在调用initialize函数后尝试使用这行代码

setlocale(LC_ALL,"C");
Run Code Online (Sandbox Code Playgroud)

认为它可能会将我的本地重置为默认值; 但无济于事.逗号坚持!!

我错过了什么?

我在这里发布了一个相关的关注点.

c++ locale cout stringstream comma

8
推荐指数
1
解决办法
681
查看次数

如何使用AST将文本编译为函数?

我需要将输入字符串(来自数据库)编译为函数并运行它.这是我目前使用的方法:

说我已经定义了这个功能:

def foo():
    print "Yo foo! I am a function!"
Run Code Online (Sandbox Code Playgroud)

我从数据库中读到的字符串说我应该调用这个函数:

string_from_db = "foo()"
Run Code Online (Sandbox Code Playgroud)

然后我形成一个函数(我可以控制其名称),它返回我从数据库中读入的函数:

my_func_string = "def doTheFunc():\n\t return " + string_from_db
Run Code Online (Sandbox Code Playgroud)

现在我编译字符串,并将其设置为我稍后用于处理的函数名称:

exec my_func_string
processor = doTheFunc
Run Code Online (Sandbox Code Playgroud)

我可以稍后通过运行processor()它来称呼它:Yo foo! I am a function!

我的问题:在这段代码之上有一条评论(由一位长期失去的开发者留下):

    ###############################################################
    # The following method for getting a function out of the text #
    # in the database could potentially be replaced by using      #
    # Python's ast module to obtain an abstract syntax tree and   #
    # put …
Run Code Online (Sandbox Code Playgroud)

python exec abstract-syntax-tree

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

asm 在 linux/include/asm 中代表什么

howto_add_systemcall读取

“一般来说,与机器架构无关的系统调用和函数的头文件保存在 linux/include/linux/ 下,而机器架构相关的头文件保存在 linux/include/asm/”

那么 asm 在这里代表什么?

我搜索了维基,但没有找到答案。

linux

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

SecurityException:签名文件条目没有最明显的部分

我在我的lib文件夹中有所有罐子,但我不知道哪些罐子签名它包含许多selenium jars.my build.xml是:

        <jar basedir="bin" destfile="build/xpath.jar">
        <zipgroupfileset dir="lib" includes="*.jar">
            <exclude name="**/*.RSA, **/*.SF, **/*.DSA"/>
            </zipgroupfileset>
        </jar>
Run Code Online (Sandbox Code Playgroud)

但是当我将它用于另一个项目时得到以下异常:

线程"main"中的异常java.lang.SecurityException:在sun的sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:392)中没有签名文件条目org/bouncycastle/asn1/ocsp/ResponderID.class的最明显部分. security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:249)

java ant jar

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