Sudah ada daftar lengkap kiat untuk python di sini , jadi yang saya minta adalah kiat yang khusus berlaku untuk menggunakan numpy
, scipy
atau pylab
pustaka.
Ini bisa berupa cara untuk mempersingkat kode yang sudah digunakan numpy
, atau cara untuk mempersingkat operasi python umum dengan menggunakan pustaka ini.
Tolong, satu tip per jawaban.
pylab
hanyamatplotlib.pyplot
+numpy
dalam namespace umum yang sudah usang. Bagiannumpy
daripylab
ini sepele dalam arti bahwa impor mereka memiliki jumlah byte yang sama, jadi hanya merencanakan hal-hal tambahan yang dapat berasalpylab
, tetapi saya menduga bukan itu yang ada dalam pikiran Anda dengan pertanyaan Anda.numpy
paket. Misalnyapylab.randint
berlaku di mana numpy akan membutuhkannumpy.random.randint
. Jadi untuk golfpylab
harus memberikan kode yang lebih pendek.Jawaban:
Manfaatkan siaran Numpy
Broadcasting berarti mereplikasi array multidimensi sepanjang beberapa dimensi singletonnya agar sesuai dengan ukuran array lainnya. Ini terjadi secara otomatis untuk array Numpy ketika operator aritmatika diterapkan pada mereka.
Misalnya, untuk menghasilkan tabel perkalian 10 × 10 yang dapat Anda gunakan
Cobalah online!
Di sini
t
dibuat sebagai array Numpy[1, 2, ..., 10]
. Ini memiliki bentuk (10,), yang setara dengan (1,10). Array operan lainnyat[:,None]
,, memiliki ukuran (10,1). Mengalikan dua array secara implisit mereplikasi mereka, sehingga mereka berperilaku seolah-olah keduanya memiliki bentuk (10,10). Hasilnya, yang juga memiliki bentuk (10,10), berisi produk untuk semua pasangan entri dalam array asli.sumber
zip
penyiaran, apakah itu akan muncul dengan jawabannya sendiri?[*zip(t)]
memiliki jumlah byte yang sama dengan yang lebih mudah dibacat[:,None]
. Tapi Anda benar, mungkin perlu diperhatikan, jadi saya menambahkannya kembali di sini[*zip(t)]
akan lebih pendek dua byte jika ada lebih banyak dimensi.[*zip(t)]
hanya akan bekerja pada python 3.my \t = 1..10; .fmt('%3d').put for t «*» t[*,Empty]
atau Anda dapat menggunakanzip(t)
Gunakan r _ [...] alih-alih rentang (...)
Numpy menyediakan sintaksis seperti matlab untuk pembuatan array
r_[...]
. Setiap notasi slice di antara tanda kurung ditafsirkan sebagai array dengan kisaran yang ditunjukkan. Jadi misalnyasetara dengan
dan untuk sebagian besar penggunaan dapat menggantikan
Itu juga dapat menangani ekspresi yang lebih kompleks. Misalnya untuk mendapatkan indeks dari 0 hingga 10 dan mundur lagi,
sumber