SORU
21 NİSAN 2009, Salı


Python üç Nokta nesnenin ne işe yarar?

Boş boş garip görünümlü bir nesne aradı fark ettim ad sörf yaparken "Üç nokta"gibi görünüyor değil ya da özel bir şey yapın, ama genel olarak kullanılabilen bir yerleşik.

Aramanın ardından Numpy ve Scipy ile Dilimleme sözdizimi... ama neredeyse başka hiçbir şey bazı karanlık varyant kullanılır buldum.

Bu nesne Numpy Scipy destek dili özellikle eklendi? Üç Nokta herhangi bir genel anlam veya bir şey var mı?

D:\workspace\numpy>python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> Ellipsis
Ellipsis

CEVAP
21 NİSAN 2009, Salı


Bu question başka bir yakın geldi. Oradan answer benim üzerinde durmak istiyorum:

Ellipsis dilim gösterimde görünen bir nesnedir. Örneğin:

myList[1:2, ..., 0]

Kendi yorumu olup zamana kadar ne olursa olsun uygular __getitem__ işlev görür ve Ellipsis nesneler var, ama onun ana (ve hedeflenen) kullanmak içinde numeric python uzantısı olan ekler çok boyutlu bir dizi türü. Birden fazla boyutları vardır beri, Dilimleme sadece başlatmak ve durdurmak, dizin daha karmaşık hale gelir; yararlı çok boyutlu dilim için mümkün olur. E. g., 4x4 bir dizi verilen, sol üst alan dilim [:2,:2] tarafından tanımlanmış olabilir:

>>> a
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12],
       [13, 14, 15, 16]])

>>> a[:2,:2]  # top left
array([[1, 2],
       [5, 6]])

Daha ileri uzanan, üç Nokta burada dizi boyutları belirtilen geri kalanı için bir yer tutucu belirtmek için kullanılır. Bence olarak gösteren tam dilim [:] tüm boyutlarda fark yer, bu yüzden bir 3d dizi a[...,0] aynı a[:,:,0] ve 4 a[:,:,:,0]. Benzer şekilde a[0,...,0] a[0,:,:,0] (ortada birçok nokta üst üste dizinin boyut tam sayı yapmak ancak).

İlginçtir, dilim sözdizimi dışında kullanılamaz, python3, yani aslında yazabilirsiniz:

>>> ...
Ellipsis

Çeşitli sayısal türleri dışında, kullanılan sanmıyorum. Farkındayım kadarıyla, numpy kullanmak için sadece eklendi ve nesnesi ve karşılık gelen sözdizimi sağlayan başka hiçbir çekirdek desteği vardır. Nesne bu gerekli değildi, ama gerçek varlık "..." dilimleri için destek yaptı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • We've moved!

    We've moved!

    7 Ocak 2008
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011