numpy-ts: همون NumPy برای تایپاسکریپت
خلاصهٔ کاملتر
این صفحه معرفی numpy-ts ـه، کتابخونهای که خودش رو کاملترین پیادهسازی NumPy برای تایپاسکریپت و جاوااسکریپت معرفی میکنه. ایدهی اصلی اینه که همون API ای که از پایتون بلدی رو بدون تغییر توی تایپاسکریپت داشته باشی: فول تایپسیف، tree-shakeable و اعتبارسنجیشده در برابر خود NumPy. نصبش هم مثل هر پکیج npm معمولیه و روی Node و Bun و Deno و مرورگر کار میکنه.
طبق ادعای صفحه، این کتابخونه ۴۷۶ تا از ۵۰۷ تابع NumPy یعنی حدود ۹۴ درصد رو پیاده کرده؛ از حساب پایه گرفته تا FFT، جبر خطی، توزیعهای تصادفی و بیشتر. یه نکتهی مهم اینه که هیچ وابستگیای نداره: نه ماژول نیتیو، نه پکیج شخص ثالث. خودش میگه فقط تایپاسکریپت خالص بهعلاوهی WASM ـه که هرجا جاوااسکریپت اجرا بشه کار میکنه.
روی سرعت هم تأکید شده. سازندهها میگن بهطور میانگین ۱.۱۳ برابر سریعتر از NumPy ـه، توی ۱۲ تا از ۱۸ دسته سریعتره و این برتری روی همهی اندازههای آرایه و dtype ها دیده میشه. برای اطمینان از درستی نتایج هم بیش از ۲۰ هزار تست خروجیها رو مستقیم با NumPy مقایسه میکنن؛ ادعاشون اینه که اگه NumPy یه نتیجه بده، numpy-ts هم همون رو میده.
API عمداً خیلی نزدیک به NumPy طراحی شده تا مهاجرت راحت باشه. مثلاً ساخت آرایه با np.array، عملیات جبر خطی مثل np.linalg.inv و np.linalg.det، ضرب ماتریسی با np.dot و تغییر شکل با np.reshape همگی همون شکل آشنای پایتونی رو دارن. یه راهنمای مهاجرت هم هست که نشون میده اکثر کد بهصورت مستقیم ترجمه میشه.
یه تفاوت ظریف اینه که چون این یه کتابخونهی جاوااسکریپتیه، ایندکسگذاری و برش کمی فرق داره. جایی که توی پایتون از سینتکس براکت و اسلایس استفاده میکنی، اینجا از متدهایی مثل .get با رشتهی ':' استفاده میشه، و آرگومانهایی مثل axis بهجای پارامتر ساده بهصورت یه شیء گزینهها پاس داده میشن. در کل پیام صفحه اینه که اگه با NumPy راحتی، اینجا هم چیز جدید زیادی برای یادگرفتن نداری. این پروژه رو Nico Dupont ساخته.
نکات کلیدی:
- numpy-ts حدود ۹۴ درصد توابع NumPy (۴۷۶ از ۵۰۷) رو برای تایپاسکریپت پیاده کرده.
- فول تایپسیف و tree-shakeable ـه و روی Node و Bun و Deno و مرورگر کار میکنه.
- هیچ وابستگی نیتیو یا شخص ثالثی نداره؛ فقط تایپاسکریپت خالص و WASM.
- بهطور میانگین ۱.۱۳ برابر سریعتر از NumPy معرفی شده و در ۱۲ از ۱۸ دسته جلوتره.
- بیش از ۲۰ هزار تست خروجیها رو مستقیم با NumPy مقایسه میکنه.




