阅读一些cython代码,我遇到了
cdef double[:] centers = np.zeros(n_samples, order='F')
其中n_samples是int,不是iterable。有没有理由使用order='F'
,因为数组是1D?
答案 0 :(得分:2)
对1D NumPy数组的标志进行简短测试:
In [1]: import numpy as np
In [2]: np.zeros(10).flags
Out[2]:
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
In [3]: np.zeros(10, order='F').flags
Out[3]:
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
所以,不,它没有任何区别。
答案 1 :(得分:1)
不,这不应该有任何区别。 Fortan / C命令没有明确跟踪;治理属性是大步;如果strides是长度为1的序列,则Fortran和C顺序是相同的,所以区别是无效的。