নম্পি: আমার কি নিউেক্সিস ব্যবহার করা উচিত বা কিছুই নয়?


91

নালীর ক্ষেত্রে দৈর্ঘ্যের একটি অক্ষ তৈরি করতে স্লাইসিং সিনট্যাক্সে 'নিউএক্সিস' অবজেক্টটি ব্যবহার করা যেতে পারে, যেমন:

import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)

ডকুমেন্টেশন রাজ্যের যে এক এছাড়াও ব্যবহার করতে পারেন Noneপরিবর্তে newaxis, প্রভাব ঠিক একই।

একে অপরকে বেছে নেওয়ার কোনও কারণ আছে কি? কোন সাধারণ পছন্দ বা শৈলী গাইড আছে? আমার ধারণাটি যে newaxisএটি বেশি জনপ্রিয়, সম্ভবত এটি আরও স্পষ্ট কারণ। সুতরাং Noneঅনুমতি দেওয়ার কোনও কারণ আছে কি?

উত্তর:


103

Noneঅনুমোদিত কারণ numpy.newaxisএটি কেবলমাত্র একটি উপাধি None

In [1]: import numpy

In [2]: numpy.newaxis is None
Out[2]: True

লেখক সম্ভবত এটি বেছে নিয়েছেন কারণ তাদের একটি সুবিধাজনক ধ্রুবক প্রয়োজন Noneছিল এবং এটি উপলব্ধ ছিল।

কেন তুমি ব্যবহার করা উচিৎ হিসাবে newaxisধরে None: প্রধানত কারণ এটি আরো স্পষ্ট হচ্ছে, এবং কারণ আংশিকভাবে কোনদিন numpyলেখক ব্যতীত অন্য কিছু এটি পরিবর্তন পারে None। (তারা পরিকল্পনা করছে না, এবং সম্ভবত করবে না, তবে পছন্দ করার কোনও ভাল কারণ নেই None))


ধন্যবাদ, আমি লক্ষ্য করিনি যে np.newaxis আসলে কিছুই নয়। আমি তখন নিউক্সিস নিয়ে যাব।
নিকো

7
তারা আসলে বলে আপনি কোনওটিই ব্যবহার করতে পারবেন না, যদিও, তারা এখন এটি পরিবর্তন করতে পারবেন না: "উপরে বর্ণিত বেসিক স্লাইসিং সিনট্যাক্সে নিউ্যাক্সিস অবজেক্টটি ব্যবহার করা যেতে পারে new নিউেক্সিসের পরিবর্তে কোনওটিই ব্যবহার করা যায় না।"
এন্ডোলিথ

4
এছাড়াও যদি আপনি অদ্ভুত সূচকের বিশদ সম্পর্কে অপরিচিত লোকদের সাথে কাজ করেন তবে তারা "কেউ নয়" দ্বারা অ্যারেটিকে অবহেলা করতে দেখলে তারা পাগল বলে মনে হচ্ছে
পিটার

4
এক জায়গা যখন Noneকার্যকর হয় কার্যকর করার গতি অনুকূলকরণ, এটি একটি খুব ক্ষুদ্র সময়ের সুবিধা দিতে পারে। তবে সাধারণত আপনার পছন্দ করা উচিত np.newaxis
Godaygo

4
কেন তারা কেবল ব্যবহার করেনি newaxis = object()(বা সি-স্তর সমতুল্য) আমার বাইরে ... ব্যবহার Noneকরা বেশ ত্রুটি-প্রবণ। আমার একটি বাগ (একটি খালি returnযা বুলিয়ান অ্যারে ফিরিয়ে দেওয়ার কথা ছিল) দিয়ে একটি ফাংশন ছিল এবং আকারের অমিলের কারণে আমি ত্রুটি পেতে শুরু করি। আমাকে অনুধাবন করতে কিছুক্ষণ সময় নিয়েছে যে সূচীকরণটি Noneকেবল একটি বাড়ায় না IndexError। যদি তারা একটি "তাজা" সেন্ডিনেল মান ব্যবহার করে থাকে তবে আমি ত্রুটিটি বোঝার চেষ্টা করার 30 মিনিট এড়িয়ে
চলতাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.