【问题标题】:ctypes pointer into the middle of a numpy arrayctypes 指针指向一个 numpy 数组的中间
【发布时间】:2011-06-25 20:25:43
【问题描述】:

我知道如何获取指向 numpy 数组开头的 ctypes 指针:

a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)

但是,我需要将指针传递到元素 100,而不复制数组。 一定有一个简单的方法可以做到,但找不到。

任何提示表示赞赏。

【问题讨论】:

    标签: python pointers numpy ctypes


    【解决方案1】:

    切片一个 numpy 数组会创建一个视图,而不是一个副本:

    >>> a = numpy.arange(10000, dtype=numpy.double)
    >>> p = a[100:].ctypes.data_as(ctypes.POINTER(ctypes.c_double))
    >>> p.contents
    c_double(100.0)
    >>> a[100] = 55
    >>> p.contents
    c_double(55.0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多