Ä°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
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ü.
Karışıklık arasında numpy, scipy, matp...
Nasıl blas/lapack bağlantısını kontrol...
Neden Python listeleri yerine NumPy?...
Numpy bir fonksiyon bir dizi içinde bi...
SciPy Python BLAS ihtiyacı var mı?...