【发布时间】:2023-03-12 12:28:01
【问题描述】:
我正在使用 Cython 在 Python 和 Fortran 代码之间建立一个接口。其中之一是检索字符串数组。在 Fortran 中,
character(len=3) :: str_array(:)
为了这个例子,假设str_array包含以下内容
allocate(str_array(2))
str_array = ['abc','def']
我的方法是将它作为单个 C 字符数组返回给 Cython。我最终得到了一个 numpy 字节字符串数组:
c_str_arr = np.array([b'a', b'b', b'c', b'd', b'e', b'f'], dtype='|S1')
然后,我使用以下 python 代码将此 numpy 数组转换为 python 字符串列表:
str_len = 3
arr_len = 2
c_str_arr.shape = (arr_len,str_len)
str_arr = []
for i in range(arr_len):
str_arr.append(b''.join(c_str_arr[i]).decode())
但这很慢。
我的问题:有没有更快的方法将c_str_arr 转换为python 字符串列表?
【问题讨论】:
标签: python numpy cython numpy-ndarray