شعار زيفيرنت

أهم أسئلة مقابلة علوم بيانات بايثون

التاريخ:

أهم أسئلة مقابلة علوم بيانات بايثون

ستة مفاهيم تقنية يجب معرفتها ونوعين من الأسئلة لاختبارها.


By نيت روزيدي، عالم بيانات ومدير منتج

الشكل
تصوير JESHOTS.COM on Unsplash

 

إذا كنت ترغب في الحصول على وظيفة في علم البيانات ، فإن معرفة بايثون أمر لا بد منه. Python هي لغة البرمجة الأكثر شيوعًا في علم البيانات ، خاصةً عندما يتعلق الأمر بالتعلم الآلي والذكاء الاصطناعي.

لمساعدتك في مهنتك في علم البيانات ، أعددت مفاهيم Python الرئيسية التي تم اختبارها في مقابلة علوم البيانات. لاحقًا ، سأناقش نوعين رئيسيين من أسئلة المقابلة التي تغطي تلك المفاهيم التي يلزمك معرفتها كعالم بيانات. سأعرض لك أيضًا العديد من الأمثلة على الأسئلة وأعطيك حلولًا لدفعك في الاتجاه الصحيح.

المفاهيم الفنية لأسئلة مقابلة بايثون

 
هذا الدليل ليس خاصًا بالشركة. لذلك إذا كان لديك بعض المقابلات في علم البيانات ، فإنني أنصحك بشدة باستخدام هذا الدليل كنقطة بداية لما قد يتم طرحه في المقابلة. بالإضافة إلى ذلك ، يجب أن تحاول أيضًا العثور على بعض الأسئلة الخاصة بالشركة ومحاولة حلها أيضًا. تعتبر معرفة المفاهيم العامة وممارستها على أسئلة الحياة الواقعية مزيجًا ناجحًا.

لن أزعجك بالأسئلة النظرية. يمكنهم التحدث في المقابلة ، لكنهم أيضًا يغطون المفاهيم التقنية الموجودة في أسئلة الترميز. بعد كل شيء ، إذا كنت تعرف كيفية استخدام المفاهيم التي سأتحدث عنها ، فمن المحتمل أنك تعرف شرحها أيضًا.

مفاهيم Python التقنية التي تم اختبارها في مقابلات العمل الخاصة بعلوم البيانات هي:

  1. أنواع البيانات
  2. هياكل البيانات المضمنة
  3. هياكل البيانات المعرفة من قبل المستخدم
  4. المدمج في وظائف
  5. الحلقات والشرطية
  6. المكتبات الخارجية (Pandas)

1. أنواع البيانات

 
أنواع البيانات هي المفهوم الذي يجب أن تكون على دراية به. هذا يعني أنه يجب عليك معرفة أنواع البيانات الأكثر استخدامًا في Python ، والفرق بينها ، ومتى وكيفية استخدامها. هذه هي أنواع البيانات مثل الأعداد الصحيحة (int) ، العوامات (float) ، المركب (المركب) ، السلاسل (str) ، المنطقية (bool) ، القيم الخالية (لا شيء).

2. هياكل البيانات المضمنة

 
هذه قائمة ، قاموس ، مجموعة ، ومجموعات. ستساعدك معرفة هياكل البيانات الأربعة المضمنة هذه على تنظيم البيانات وتخزينها بطريقة تتيح سهولة الوصول والتعديلات.

3. هياكل البيانات المعرفة من قبل المستخدم

 
علاوة على استخدام هياكل البيانات المضمنة ، يجب أن تكون أيضًا قادرًا على تحديد واستخدام بعض هياكل البيانات المعرفة من قبل المستخدم. هذه هي المصفوفات ، المكدس ، قائمة الانتظار ، الأشجار ، القوائم المرتبطة ، الرسوم البيانية ، HashMaps.

4. وظائف مدمجة

 
تحتوي Python على أكثر من 60 وظيفة مضمنة. لا تحتاج إلى معرفتهم جميعًا بينما ، بالطبع ، من الأفضل معرفة أكبر عدد ممكن. الوظائف المضمنة التي لا يمكنك تجنبها هي abs () ، isinstance () ، len () ، list () ، min () ، max () ، pow () ، range () ، round () ، split () ، مرتبة () ، اكتب ().

5. الحلقات والشرطية

 
تُستخدم الحلقات في المهام المتكررة عندما يؤدون قطعة واحدة من التعليمات البرمجية مرارًا وتكرارًا. يفعلون ذلك حتى تخبرهم الشروط (اختبارات الصواب / الخطأ) بالتوقف.

6. المكتبات الخارجية (الباندا)

 
في حين أن هناك العديد من المكتبات الخارجية المستخدمة ، فمن المحتمل أن يكون Pandas هو الأكثر شعبية. وهي مصممة لتحليل البيانات العملية في العلوم المالية والاجتماعية والإحصاء والهندسة.

أنواع أسئلة مقابلة بايثون

 
يتم اختبار جميع هذه المفاهيم الفنية الستة بشكل أساسي من خلال نوعين فقط من أسئلة المقابلة. هؤلاء يكونون:

  1. معالجة البيانات والتحليل
  2. خوارزميات

دعونا نلقي نظرة فاحصة على كل واحد منهم.

1. معالجة البيانات وتحليلها

 
تم تصميم هذه الأسئلة لاختبار المفهوم الفني أعلاه عن طريق حل مشاكل ETL (استخراج البيانات وتحويلها وتحميلها) وإجراء بعض تحليل البيانات.

هنا واحد من هذا القبيل مثال من Facebook:

سؤال: يرسل Facebook نصوصًا نصية قصيرة SMS عندما يحاول المستخدمون الدخول إلى النظام الأساسي 2FA (المصادقة الثنائية) لتسجيل الدخول. من أجل النجاح في 2FA ، يجب عليهم تأكيد استلامهم للرسالة النصية القصيرة SMS. نصوص التأكيد صالحة فقط في تاريخ إرسالها. لسوء الحظ ، كانت هناك مشكلة ETL في قاعدة البيانات حيث تم إدخال طلبات الصداقة وسجلات التأكيد غير الصالحة في السجلات ، والتي يتم تخزينها في جدول "fb_sms_sends". يجب ألا تكون أنواع الرسائل هذه في الجدول. لحسن الحظ ، يحتوي جدول "fb_confirmers" على سجلات تأكيد صالحة حتى تتمكن من استخدام هذا الجدول لتحديد الرسائل النصية القصيرة SMS التي أكدها المستخدم.

احسب النسبة المئوية لنصوص الرسائل القصيرة المؤكدة ليوم 4 أغسطس 2020.

إجابة: 

استيراد الباندا مثل pd import numpy مثل np df = fb_sms_sends [["ds"، "type"، "phone_number"]] df1 = df [df ["type"]. isin (['Confirm'، 'friend_request']) = = False] df1_grouped = df1.groupby ('ds') ['phone_number']. count (). reset_index (name = 'count') df1_grouped_0804 = df1_grouped [df1_grouped ['ds'] == '08-04-2020' ] df2 = fb_confirmers [["date"، "phone_number"]] df3 = pd.merge (df1، df2، how = 'left'، left_on = ["phone_number"، "ds"]، right_on = ["phone_number"، "date"]) df3_grouped = df3.groupby ('date') ['phone_number']. count (). reset_index (name ='irmed_count ') df3_grouped_0804 = df3_grouped [df3_grouped [' date '] ==' 08-04- 2020 '] النتيجة = (float (df3_grouped_0804 ['irmed_count']) / df1_grouped_0804 ['count']) * 100


أحد الأسئلة المطروحة لاختبار مهاراتك في تحليل البيانات هو هذا واحد من Dropbox:

سؤال: اكتب استعلامًا يحسب الفرق بين أعلى الرواتب الموجودة في أقسام التسويق والهندسة. إخراج فقط الفرق في الرواتب.

إجابة: 

استيراد الباندا كـ pd import numpy مثل np df = pd.merge (db_employee، db_dept، how = 'left'، left_on = ['department_id']، right_on = ['id']) df1 = df [df ["department"] == 'engineering'] df_eng = df1.groupby ('department') ['راتب']. max (). reset_index (name = 'eng_salary') df2 = df [df ["department"] == 'تسويق'] df_mkt = df2.groupby ('department') ['راتب']. max (). reset_index (name = 'mkt_salary') نتيجة = pd.DataFrame (df_mkt ['mkt_salary'] - df_eng ['eng_salary']) النتيجة. أعمدة = نتيجة ['فرق_الراتب']


2. الخوارزميات

 
عندما يتعلق الأمر بأسئلة مقابلة خوارزمية Python ، فإنهم يختبرون حل مشكلتك باستخدام الخوارزميات. نظرًا لأن الخوارزميات لا تقتصر على لغة برمجة واحدة فقط ، فإن هذه الأسئلة تختبر منطقك وتفكيرك ، بالإضافة إلى الترميز في Python.

على سبيل المثال ، يمكنك الحصول على هذا السؤال:

سؤال: بالنظر إلى سلسلة تحتوي على أرقام من 2-9 ضمناً ، قم بإرجاع كل مجموعات الحروف الممكنة التي يمكن أن يمثلها الرقم. أعد الإجابة بأي ترتيب.

ويرد أدناه تعيين الرقم إلى الأحرف (تمامًا كما هو الحال على أزرار الهاتف). لاحظ أن 1 لا يتم تعيينه لأية أحرف.

إجابة:

class Solution: def letterCombinations (self، digits: str) -> List [str]: # إذا كان الإدخال فارغًا ، قم فورًا بإرجاع مصفوفة إجابة فارغة إذا كان len (أرقام) == 0: إرجاع [] # تعيين جميع الأرقام إلى الأحرف المقابلة لها = {"2": "abc" ، "3": "def" ، "4": "ghi" ، "5": "jkl" ، "6": "mno" ، "7": "pqrs"، "8": "tuv"، "9": "wxyz"} def backtrack (index، path): # إذا كان المسار بنفس طول الأرقام ، فلدينا مجموعة كاملة إذا كان len (path) = = len (digits): مجموعات. # أضف الحرف إلى مسار المسار الحالي. المسار الفارغ وفهرس البداية من 1 مجموعة = [] تراجع (0 ، []) إرجاع تركيبات


أو يمكن أن يصبح الأمر أكثر صعوبة مع السؤال التالي:

سؤال: اكتب برنامجًا لحل أحجية سودوكو بملء الخلايا الفارغة. يجب أن يستوفي حل سودوكو جميع القواعد التالية:

  1. يجب أن يحدث كل رقم من الأرقام من 1 إلى 9 مرة واحدة في كل صف.
  2. يجب أن يحدث كل رقم من الأرقام من 1 إلى 9 مرة واحدة بالضبط في كل عمود.
  3. يجب أن يحدث كل رقم من الأرقام من 1 إلى 9 مرة واحدة بالضبط في كل من المربعات الفرعية 9 3 × 3 في الشبكة.

ال '.' يشير الحرف إلى خلايا فارغة ".

إجابة:

من المجموعات استيراد فئة defaultdict الحل: def حلSudoku (self، board): "" ": type board: List [List [str]]: rtype: void لا تقم بإرجاع أي شيء ، قم بتعديل اللوحة في المكان بدلاً من ذلك." "" def can_place (د ، صف ، عمود): "" "تحقق مما إذا كان بإمكان المرء وضع رقم d في (صف ، عمود) خلية" "" لا ترجع (d في الصفوف [الصف] أو d في الأعمدة [العمود] أو d في المربعات [ box_index (row، col)]) def place_number (d، row، col): "" "ضع رقم d في (صف ، عمود) خلية" "" صفوف [صف] [d] + = 1 عمود [عمود] [ د] + = مربع واحد [box_index (row، col)] [d] + = 1 board [row] [col] = str (d) def remove_number (d، row، col): "" "أزل رقمًا لم يكن 't يؤدي إلى حل "" del rows [row] [d] delumns [col] [d] del box [box_index (row، col)] [d] board [row] [col] ='. ' def place_next_numbers (row، col): "" "Call backtrack function in recursion لمواصلة وضع الأرقام حتى اللحظة التي لدينا حل" "" # إذا كنا في الخلية الأخيرة # فهذا يعني أن لدينا الحل إذا col = = N - 1 والصف == N - 1: sudoku_solved sudoku_solved nonlocal sudoku_solved = صحيح #if ليس بعد آخر: # إذا كنا في نهاية الصف # انتقل إلى الصف التالي إذا كان col == N - 1: backtrack ( row + 1، 1) # انتقل إلى العمود التالي: backtrack (row، col + 0) def backtrack (row = 1، col = 0): "" "Backtracking" "" # إذا كانت الخلية فارغة إذا كانت اللوحة [ row] [col] == '.': # كرر على جميع الأرقام من 0 إلى 1 لـ d في النطاق (9 ، 1): if could_place (d ، row ، col): place_number (d ، row ، col) place_next_numbers ( row، col) # إذا تم حل sudoku، فلا داعي للتراجع # لأن الحل الفريد الوحيد موعود إذا لم يكن sudoku_solved: remove_number (d، row، col) else: place_next_numbers (row، col) # box size n = 10 # حجم الصف N = n * n # دالة lambda لحساب مؤشر مربع box_index = صف lambda ، العمود: (row // n) * n + col // n # init صفوف وأعمدة ومربعات صفوف = [defaultdict (int) لـ i in range (N)] أعمدة = [defaultdict (int) لـ i in range (N)] مربعات = [defaultdict (int ) لـ i في النطاق (N)] بالنسبة إلى i في النطاق (N): بالنسبة لـ j في النطاق (N): إذا كانت اللوحة [i] [j]! = '.': d = int (board [i] [j] ) place_number (d، i، j) sudoku_solved = False backtrack ()


ستكون هذه خوارزمية معقدة جدًا ومفيدة لك إذا كنت تعرف كيفية حلها!

وفي الختام

 
بالنسبة لمقابلة علوم البيانات ، فإن المفاهيم الفنية الستة التي ذكرتها ضرورية. بالطبع ، يوصى بالغوص بشكل أعمق في بايثون وتوسيع نطاق معرفتك. ليس فقط من الناحية النظرية ولكن أيضًا الممارسة من خلال حل أكبر عدد ممكن من الأسئلة المتعلقة بمعالجة البيانات وتحليلها وأسئلة الخوارزمية.

بالنسبة للأول ، هناك الكثير من الأمثلة على ستراتا سكراتش. ربما يمكنك العثور على أسئلة من الشركة التي تقدمت فيها للحصول على وظيفة. و LeetCode يعد اختيارًا جيدًا عندما تقرر التدرب على كتابة خوارزميات بايثون قبل إجراء المقابلات.

اقرأ مقالاتي الأخرى حول علم البيانات أسئلة وأجوبة مقابلة SQL و أسئلة مقابلة علوم البيانات الأكثر شيوعًا!

 
السيرة الذاتية: نيت روزيدي هو عالم بيانات ومدير منتج.

أصلي. تم إعادة النشر بإذن.

هذا الموضوع ذو علاقة بـ:


أفلاطون. Web3 مُعاد تصوره. تضخيم ذكاء البيانات.
انقر هنا للوصول.

المصدر: https://www.kdnuggets.com/2021/07/top-python-data-science-interview-questions.html

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟