numpy.random.randint() 总是 return 连续且对齐的 ndarray 吗?
Does numpy.random.randint() always return a contiguous and aligned ndarray?
是否 numpy.random.randint(),当提供一个 size
参数并因此 returning 一个 ndarray 时,总是 return 一个 连续的 和 对齐 数组?
(我想确保通过 PyArray_DATA 到达的 return 值的数据可以通过 C 指针算法安全有效地索引。numpy.random.randint() docs 不明确保证。)
在 current source code 中,对 ndarray 的原始 C 索引访问正是它在返回之前的填充方式:
array = <ndarray>np.empty(size, int)
length = PyArray_SIZE(array)
array_data = <long *>PyArray_DATA(array)
with self.lock, nogil:
for i from 0 <= i < length:
rv = lo + <long>rk_interval(diff, self. internal_state)
array_data[i] = rv
return array
所以以同样的方式访问它应该没问题。
是否 numpy.random.randint(),当提供一个 size
参数并因此 returning 一个 ndarray 时,总是 return 一个 连续的 和 对齐 数组?
(我想确保通过 PyArray_DATA 到达的 return 值的数据可以通过 C 指针算法安全有效地索引。numpy.random.randint() docs 不明确保证。)
在 current source code 中,对 ndarray 的原始 C 索引访问正是它在返回之前的填充方式:
array = <ndarray>np.empty(size, int)
length = PyArray_SIZE(array)
array_data = <long *>PyArray_DATA(array)
with self.lock, nogil:
for i from 0 <= i < length:
rv = lo + <long>rk_interval(diff, self. internal_state)
array_data[i] = rv
return array
所以以同样的方式访问它应该没问题。