SORU
11 Kasım 2010, PERŞEMBE


Ne numpy diziler ve matrisleri arasındaki farklar? Hangisini kullanmalıyım?

Her avantajları ve dezavantajları nelerdir?

Gördüğüm kadarıyla, ya da bir yedek olarak çalışabilecek bir diğeri gerekirse, ben her ikisini de kullanarak rahatsız etmeli mi yoksa devam etmeli miyim?

Programın tarzı tercihimi etkiler? Bazı makine kullanarak numpy öğrenme yapıyorum, gerçekten matrisleri, aynı zamanda vektörler (diziler) pek çoktur.

CEVAP
11 Kasım 2010, PERŞEMBE


Numpy matrislerini numpy diziler (ndarrays) iken 2 boyutlu, kesinlikle vardır N-boyutlu. Matrix nesneleri devralır çok ndarray bir alt sınıfı vardır, ndarrays özellikleri ve yöntemleri.

Numpy matrislerini avantajı uygun bir gösterim sağlamaktır a ve b matrisleri, a*b matrisi onların ise matris çarpımı için: ürün.

import numpy as np

a=np.mat('4 3; 2 1')
b=np.mat('1 2; 3 4')
print(a)
# [[4 3]
#  [2 1]]
print(b)
# [[1 2]
#  [3 4]]
print(a*b)
# [[13 20]
#  [ 5  8]]

Her iki matris nesneleri ve ndarrays .T devrik dönmek zorunda, ama matrix nesneler de .H ters için eşlenik devrik ve .I için.

Buna karşılık, numpy diziler sürekli operasyonları kurala uymak uygulanan element-bilge. Eğer a ve b numpy diziler böylece, eğer, o zaman a*b dizidir bileşenleri çarparak oluşturduğu element-bilge:

c=np.array([[4, 3], [2, 1]])
d=np.array([[1, 2], [3, 4]])
print(c*d)
# [[4 6]
#  [6 4]]

Matris çarpma sonucu elde etmek için, np kullanın.nokta :

print(np.dot(c,d))
# [[13 20]
#  [ 5  8]]

** operatör de farklı davranır:

print(a**2)
# [[22 15]
#  [10  7]]
print(c**2)
# [[16  9]
#  [ 4  1]]

a a**2 matris bir matris döndürür ürün a*a. c, c**2 ndarray bir döner olduğu her bir bileşeni ile bir ndarray Kare element-bilge.

Matrix nesneleri ve ndarrays arasında teknik farklılıklar vardır (ile yapmak zorunda np.ravel, ürün seçim ve sıra davranış).

Numpy diziler avantajı daha genel olmasıdır 2 boyutlu bir matris. 3 boyutlu bir dizi istiyorsanız ne olacak? Sonra bir ndarray kullanmak zorunda, bir matrix nesne. Böylece, matris kullanmayı öğrenme nesneleri daha fazla iş -- matrix nesne işlemleri öğrenmek için, ve var. ndarray işlemleri.

Her iki matris kullanan bir program yazmak ve diziler hayatını zorlaştırıyor eğer değişkenler nedir diye takip etmek zorunda çünkü çarpma beklemediğin bir şey dönmek.

Eğer sadece ndarrays takıl buna karşılık, eğer, o zaman her şeyi yapabilirsin matrix nesneleri yapabilir, ve daha fazla, tek farkı biraz daha farklı fonksiyonlar gösterim/.

Eğer numpy matrix ürün görsel çekiciliği vermek için istekli olup olmadığını gösterimde, numpy diziler kesinlikle gitmek için yolu olduğunu düşünüyorum.

PS. Tabii ki, gerçekten diğer pahasına bir seçim yapmak zorunda kalmaz np.asmatrix np.asarray diğer bir dönüştürmek için izin beri dizi uzun 2 boyutlu).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HBO

    HBO

    17 Mayıs 2006
  • picster

    picster

    20 NİSAN 2006
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009