Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python C++;指向Numpy数组的指针_Python_C++_Arrays_Numpy - Fatal编程技术网

Python C++;指向Numpy数组的指针

Python C++;指向Numpy数组的指针,python,c++,arrays,numpy,Python,C++,Arrays,Numpy,简要说明: 如果内存中有指向数组的指针、数组的类型和元素数,是否有一种有效的方法来生成numpy数组 更多详细信息: 我正在使用一个python框架,它有一个object.GetData()命令,该命令应该返回指向该对象的数据(35000 int8的数组)的指针 我应该能够通过 arr = numpy.frombuffer(object.GetData(),count=35000,dtype="int8") 但这似乎不起作用。我收到一条错误消息ValueError:buffer小于请求的大小。

简要说明:

如果内存中有指向数组的指针、数组的类型和元素数,是否有一种有效的方法来生成numpy数组

更多详细信息:


我正在使用一个python框架,它有一个
object.GetData()
命令,该命令应该返回指向该对象的数据(35000 int8的数组)的指针

我应该能够通过

arr = numpy.frombuffer(object.GetData(),count=35000,dtype="int8")
但这似乎不起作用。我收到一条错误消息
ValueError:buffer小于请求的大小
。更改长度,我可以让它输出一个数组,但长度通常小于20个整数(通常为0或1个整数)

我相信我可以通过

hex(id(object.GetData())) 
看起来它给出了地址(例如0x10fd8c670),但我不知道这是否是实际地址

我在Python中比C++更舒服,但是C++代码中可能有bug。GETDATA的C++代码是:

const _Tp* GetData() const 
{ 
  // Return a const pointer to the internal data
  return (fData.size() > 0 ) ? &(fData)[0] : NULL; 
}
其中,fdata通过以下方式初始化为向量类型:

VecType   fData;
现在,我可以通过
对象访问对象数据的每个元素。在(I)
命令中,我是对象数据数组的索引,但是以这种方式将每个元素加载到numpy数组中非常慢,而且我正在处理大量数据。作为参考,C++代码中的AT命令这样做:

_Tp  At(size_t i) const 
{ 
  return fData.at(i); 
} 

任何帮助都将不胜感激。我对指针没有太多的经验,甚至在Python中使用指针也不多,但是我想用Python来解决这个问题,而不是重新编写C++中的所有代码。谢谢

“应该返回指向数据的指针”-请稍候。“指针”是指什么数据类型?此返回值是ctypes指针吗?记忆视图?表示内存地址的整数?这是怎么一回事?