C-Types外部功能接口
-
numpy.ctypeslib.as_array
(obj, shape=None) source
從ctypes數(shù)組或ctypes POINTER創(chuàng)建一個(gè)numpy數(shù)組沛简。 numpy數(shù)組與ctypes對(duì)象共享內(nèi)存齐鲤。
如果從ctypes POINTER轉(zhuǎn)換斥废,則必須給出size參數(shù)。 如果從ctypes數(shù)組轉(zhuǎn)換给郊,則忽略size參數(shù)
numpy.ctypeslib.as_ctypes
(obj) source
從numpy數(shù)組創(chuàng)建并返回ctypes對(duì)象牡肉。 實(shí)際上接受了暴露array_interface的任何東西。-
numpy.ctypeslib.ctypes_load_library
(*args, **kwds) source
不推薦使用ctypes_load_library
淆九,而是使用load_library
荚板!可以使用 lib = ctypes.cdll [<full_path_name style="color: rgb(51, 68, 85); box-sizing: border-box;">]加載庫(kù)</full_path_name>
但是存在跨平臺(tái)的考慮因素,例如庫(kù)文件擴(kuò)展吩屹,以及Windows將只加載它找到的具有該名稱的第一個(gè)庫(kù)跪另。 為方便起見(jiàn),NumPy提供load_library函數(shù)煤搜。
-
Parameters:
-
libname : str
庫(kù)的名稱免绿,可以將“l(fā)ib”作為前綴,但不帶擴(kuò)展名擦盾。 -
loader_path : str
提供這個(gè)庫(kù)的路徑
-
libname : str
-
Returns:
-
ctypes.cdll[libpath] : library object
一個(gè)ctypes庫(kù)對(duì)象
-
ctypes.cdll[libpath] : library object
-
Raises:
-
OSError
如果沒(méi)有具有預(yù)期擴(kuò)展名的庫(kù)嘲驾,或者庫(kù)有缺陷且無(wú)法加載。
-
OSError
-
-
numpy.ctypeslib.load_library
(libname, loader_path) source
可以使用>>> lib = ctypes.cdll [<full_path_name style="color: rgb(51, 68, 85); box-sizing: border-box;">]加載庫(kù)</full_path_name>但是存在跨平臺(tái)的考慮因素迹卢,例如庫(kù)文件擴(kuò)展辽故,以及Windows將只加載它找到的具有該名稱的第一個(gè)庫(kù)。 為方便起見(jiàn)腐碱,NumPy提供load_library函數(shù)誊垢。
-
Parameters:
-
libname : str
庫(kù)的名稱,可以將“l(fā)ib”作為前綴症见,但不帶擴(kuò)展名喂走。 -
loader_path : str
提供這個(gè)庫(kù)的路徑
-
libname : str
-
Returns:
-
ctypes.cdll[libpath] : library object
一個(gè)ctypes庫(kù)對(duì)象
-
ctypes.cdll[libpath] : library object
-
Raises:
-
OSError
如果沒(méi)有具有預(yù)期擴(kuò)展名的庫(kù),或者庫(kù)有缺陷且無(wú)法加載谋作。
-
OSError
-
-
numpy.ctypeslib.ndpointer
(dtype=None, ndim=None, shape=None, flags=None) source
數(shù)組檢查restype / argtypes芋肠。ndpointer實(shí)例用于描述restypes和argtypes規(guī)范中的ndarray。 這種方法比使用“POINTER(c_double)”更靈活遵蚜,因?yàn)榭梢灾付◣讉€(gè)限制帖池,這些限制在調(diào)用ctypes函數(shù)時(shí)得到驗(yàn)證饥努。 這些包括數(shù)據(jù)類型出刷,維度數(shù)量,形狀和標(biāo)志太示。 如果給定的數(shù)組不滿足指定的限制攒钳,則引發(fā)“TypeError”帮孔。
-
Parameters:
-
dtype : 數(shù)據(jù)類型,可選
數(shù)組數(shù)據(jù)類型 -
ndim : int, 可選
數(shù)組維數(shù)。 -
shape : 整數(shù)元組文兢,可選
陣列形狀晤斩。 -
flags : str的str或tuple
- 數(shù)組標(biāo)志; 可能是以下一種或多種:
- C_CONTIGUOUS / C / CONTIGUOUS
- F_CONTIGUOUS / F / FORTRAN
- OWNDATA / O
- WRITEABLE / W
- ALIGNED / A
- WRITEBACKIFCOPY / X
- UPDATEIFCOPY / U
- 數(shù)組標(biāo)志; 可能是以下一種或多種:
-
dtype : 數(shù)據(jù)類型,可選
-
Returns:
-
klass : ndpointer類型對(duì)象
一個(gè)類型對(duì)象,它是一個(gè)包含dtype姆坚,ndim澳泵,shape和flags信息的_ndtpr實(shí)例。
-
klass : ndpointer類型對(duì)象
-
Raises:
-
TypeError
如果給定的數(shù)組不滿足指定的限制兼呵。
-
TypeError
-
例子
>>> clib.somefunc.argtypes = [np.ctypeslib.ndpointer(dtype=np.float64,
... ndim=1,
... flags='C_CONTIGUOUS')]
...
>>> clib.somefunc(np.array([1, 2, 3], dtype=np.float64))
...