以Fortran顺序在Python Numpy中创建列向量
我需要一个3行1列的numpy数组(用于创建区域时的pycgn) 当询问它是否为NPY.isfortran(X)时,这必须是正确的 我试过几种方法,但都不管用 e、 g 功能是。它返回: 如果数组是Fortran连续的但不是C连续的,则为True 您的数组是fortran连续的,C连续的。函数是。它返回: 如果数组是Fortran连续的但不是C连续的,则为True 您的数组是fortran连续和C连续的。引用(我的重点): 如果数组是Fortran连续的,但不是C连续的,则返回True 此函数已过时,并且由于松弛步幅检查导致的更改,对于NumPy>=1.10.0版本和早期版本,同一数组的返回值可能不同。如果只想检查数组是否为Fortran连续数组,请改用以Fortran顺序在Python Numpy中创建列向量,python,arrays,numpy,fortran,Python,Arrays,Numpy,Fortran,我需要一个3行1列的numpy数组(用于创建区域时的pycgn) 当询问它是否为NPY.isfortran(X)时,这必须是正确的 我试过几种方法,但都不管用 e、 g 功能是。它返回: 如果数组是Fortran连续的但不是C连续的,则为True 您的数组是fortran连续的,C连续的。函数是。它返回: 如果数组是Fortran连续的但不是C连续的,则为True 您的数组是fortran连续和C连续的。引用(我的重点): 如果数组是Fortran连续的,但不是C连续的,则返回True 此函数已
a.flags.f_continuous
这里有几点需要注意:
a = np.zeros((3, 1), order='F')
print(a.flags)
# C_CONTIGUOUS : True
# F_CONTIGUOUS : True
# OWNDATA : True
# WRITEABLE : True
# ALIGNED : True
# UPDATEIFCOPY : False
print(a.flags.f_contiguous)
# True
不能编辑标志。然而,这里有一些技巧。例如,可以使用转置将2D C数组转换为F数组(尽管具有交换的维度):
引用(我的重点):
如果数组是Fortran连续的,但不是C连续的,则返回True
此函数已过时,并且由于松弛步幅检查导致的更改,对于NumPy>=1.10.0版本和早期版本,同一数组的返回值可能不同。如果只想检查数组是否为Fortran连续数组,请改用a.flags.f_continuous
这里有几点需要注意:
a = np.zeros((3, 1), order='F')
print(a.flags)
# C_CONTIGUOUS : True
# F_CONTIGUOUS : True
# OWNDATA : True
# WRITEABLE : True
# ALIGNED : True
# UPDATEIFCOPY : False
print(a.flags.f_contiguous)
# True
不能编辑标志。然而,这里有一些技巧。例如,可以使用转置将2D C数组转换为F数组(尽管具有交换的维度):
PYCGN无法创建列向量 我通过在C中编程CGNS头(基本和区域)解决了这个问题
然后将C程序中创建的文件加载到pyCGNS中并在其上构建。pyCGNS无法创建列向量 我通过在C中编程CGNS头(基本和区域)解决了这个问题
然后在pyCGNS中加载从C程序创建的文件并在其上构建。如果其中一个维度为1,则C顺序和Fortran顺序之间绝对没有区别。元素按一维数组的顺序排列。如果其中一个维度为1,则C顺序和Fortran顺序之间绝对没有区别。元素按1D数组的顺序排列。是否有方法修改Numpy数组标志。否,它们是只读的。这是有意义的,因为它们是描述性的,而不是规定性的。如果需要不同的标志,则需要创建一个新数组(或至少一个新视图)。是否有方法修改Numpy数组标志。否,它们是只读的。这是有意义的,因为它们是描述性的,而不是规定性的。如果需要不同的标志,则需要创建一个新数组(或至少创建一个新视图)。
a = np.zeros((3, 1), order='F')
print(a.flags)
# C_CONTIGUOUS : True
# F_CONTIGUOUS : True
# OWNDATA : True
# WRITEABLE : True
# ALIGNED : True
# UPDATEIFCOPY : False
print(a.flags.f_contiguous)
# True
print(np.ones((3, 2), order='C').flags)
# C_CONTIGUOUS : True
# F_CONTIGUOUS : False
# ....
print(np.ones((3, 2), order='C').T.flags)
# C_CONTIGUOUS : False
# F_CONTIGUOUS : True
# ....