SORU
1 HAZİRAN 2011, ÇARŞAMBA


İlişkisini scipy ve numpy

scipy en çok [1]) numpy'ın kendi ad fonksiyonları sağlamak için görüntülenir Eğer bir fonksiyonu numpy.foo, isimli, eğer orada başka bir deyişle, neredeyse kesinlikle scipy.foo bir şey var. Çoğu zaman, iki tam olarak aynı, hatta çoğu zaman aynı işlevi nesneyi işaret görünür.

Bazen, onlar farklıdır. Son zamanlarda ortaya çıkan bir örnek vermek gerekirse:

  • numpy.log10 negatif argümanlar için NaNs döndüren ufunc;
  • scipy.log10 negatif argümanlar için karmaşık değerler verir, ve bir ufunc görünmüyor.

Aynı log, log2 logn amalog1p [2]hakkında söylenebilir.

Diğer taraftan, numpy.exp scipy.exp aynı ufunc için farklı isimler görünüyor. Bu da scipy.log1p numpy.log1p geçerlidir.

Başka bir örnek scipy.linalg.solve Galatasaray numpy.linalg.solve. Aynı görünüyorlar, ama ikincisi, birincisine göre bazı ek özellikler sunar.

Neden görünür çoğaltılması? Eğer bu scipy ad numpy toptan ithalat yazıldıysa, neden davranış ve kayıp fonksiyonları ince farklar? Karışıklığı temizlemek yardımcı olacak bazı kapsamlı mantığı var mı?

[1] numpy.min, numpy.max, numpy.abs ve birkaç Diğerleri scipy ad hiçbir karşılığı var.

[2] numpy 1.5.1 kullanarak Test edilmiş ve *26 0.9*.0rc2.

CEVAP
1 HAZİRAN 2011, ÇARŞAMBA


Yanılmıyorsam, __init__ scipy yöntemi yürütür

from numpy import *

bütün ad numpy scipy modülü alındığında scipy içine dahil edilir.

Anlattığın log10 davranışları ilginç, çünküher ikisi desürüm numpy geliyor. ufunc numpy.lib bir fonksiyonudur. ** 31, üstünde, bir kütüphane işlevi tercih neden kafamın üst biliyor.


EDİT: aslında, log10 soruya cevap verebilirim. Görüyorum __init__ scipy yöntemi bakarak:

# Import numpy symbols to scipy name space
import numpy as _num
from numpy import oldnumeric
from numpy import *
from numpy.random import rand, randn
from numpy.fft import fft, ifft
from numpy.lib.scimath import *

Scipy olsun log10 fonksiyonu numpy geliyor.lib.scimath. Bu kod bakarak, diyor ki:

"""
Wrapper functions to more user-friendly calling of certain math functions
whose output data-type is different than the input data-type in certain
domains of the input.

For example, for functions like log() with branch cuts, the versions in this
module provide the mathematically valid answers in the complex plane:

>>> import math
>>> from numpy.lib import scimath
>>> scimath.log(-math.exp(1)) == (1 1j*math.pi)
True

Similarly, sqrt(), other base logarithms, power() and trig functions are
correctly handled.  See their respective docstrings for specific examples.
"""

Modül Bankası numpy,, log2,, log10, Karekök günlük logn güç, bölge, arcsin, arctanh için ufuncs kaplamalar gibi görünüyor. Bu gördüğünüz davranışları açıklar. Böyle yapılır neden temel tasarım nedeni muhtemelen bir posta listesi yazı bir yere gömüldü.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • monkophile

    monkophile

    25 Temmuz 2007
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007
  • Ty Moss

    Ty Moss

    20 Kasım 2007