2013-11-28 19 views
18

, numpy modülün cimport ve ithalat ifadeler vardır: Bu kongre bulundu Cython: (her ikisi) np olarak cimport ve ithalat numpy Cython belgelerin <a href="http://docs.cython.org/src/tutorial/numpy.html#adding-types">tutorial</a> yılında

import numpy as np 
cimport numpy as np 

arasında oldukça popülerdir numpy/Cython kullanıcılar.

onlar np olarak adlandırılan hem Bunun nedeni benim için tuhaf görünüyor. Kodun hangi bölümünde, içe aktarılan/alınan np kullanılır? Neden cython derleyicisi onları karıştırmaz?

+2

Çünkü cimport gerçekten bir (Python) modülünü içe aktarmıyor. [(C) tanımlarını] ithal eder (http://docs.cython.org/src/userguide/sharing_declarations.html#the-cimport-statement). Bilmiyorum, ama sanırım ikinci satırı sadece 'cimport numpy' olarak değiştirirseniz, işler bozulur: betikte kullanılan Python modül adı ile betimler arasında uyuşmaya çok ihtiyaç olabilir. ad. – Evert

+0

@Evert Ayrıca, "import numpy" işlevini kullanabileceği gibi, 'numport' özelliğini de kullanabilirsiniz, aynı şekilde çalışır, ancak 'importport', içe aktarılan modülün altındaki C işlevlerine veya özniteliklerine erişim sağlarken, 'Python işlevlerine veya özniteliklerine –

cevap

21

cimport my_module

import my_modulePython işlevlerine erişim sağlar veya my_module altında niteliklerini veya alt modüller my_module altında bile C işlevlerin veya nitelikler veya alt modüller erişim sağlar. Senin durumunda

:

cimport numpy as np 

Eğer böyle devam dizi tamponlarını, değişken türleri ve ilan edebilir Numpy C API, erişim sağlar ...

Ve:

import numpy as np 

, np.array, np.linspace, vb gibi NumPy-Python işlevlerine erişmenizi sağlar

Cython, bu belirsizliği dahili olarak ele alır, böylece kullanıcının farklı adlar kullanmasına gerek kalmaz.

+1

Küçük bir ekleme: @Saullo Castro tarafından ima edilen Numpy C API, Python Numpy ürününüzün sunduğu tüm işlevleri sunmaz. C API'sinin yapabileceklerini ve yapamayacağınızı öğrenmek için 'Includes' [klasör] 'e (https://github.com/cython/cython/tree/master/Cython/Includes/numpy) bakabilirsiniz. Cython kurulumu. Orada '.pxd' dosyaları Cython ithalatı bulacaksınız. – m00am

İlgili konular