From f70baf0f6b6761baefe56d72355ef783caeda734 Mon Sep 17 00:00:00 2001 From: leestott Date: Sat, 6 Sep 2025 16:08:28 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20Update=20translations=20via=20Co?= =?UTF-8?q?-op=20Translator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2-Working-With-Data/07-python/README.md | 106 ++++----- .../2-Working-With-Data/07-python/README.md | 96 ++++---- .../2-Working-With-Data/07-python/README.md | 212 +++++++++--------- .../2-Working-With-Data/07-python/README.md | 92 ++++---- .../2-Working-With-Data/07-python/README.md | 96 ++++---- .../2-Working-With-Data/07-python/README.md | 128 +++++------ .../2-Working-With-Data/07-python/README.md | 130 +++++------ .../2-Working-With-Data/07-python/README.md | 120 +++++----- .../2-Working-With-Data/07-python/README.md | 84 ++++--- .../2-Working-With-Data/07-python/README.md | 158 ++++++------- .../2-Working-With-Data/07-python/README.md | 92 ++++---- .../2-Working-With-Data/07-python/README.md | 178 +++++++-------- .../2-Working-With-Data/07-python/README.md | 82 +++---- .../2-Working-With-Data/07-python/README.md | 170 +++++++------- .../2-Working-With-Data/07-python/README.md | 142 ++++++------ .../2-Working-With-Data/07-python/README.md | 111 ++++----- .../2-Working-With-Data/07-python/README.md | 114 +++++----- .../2-Working-With-Data/07-python/README.md | 105 ++++----- .../2-Working-With-Data/07-python/README.md | 94 ++++---- .../2-Working-With-Data/07-python/README.md | 130 +++++------ .../2-Working-With-Data/07-python/README.md | 116 +++++----- .../2-Working-With-Data/07-python/README.md | 120 +++++----- .../2-Working-With-Data/07-python/README.md | 74 +++--- .../2-Working-With-Data/07-python/README.md | 135 +++++------ .../2-Working-With-Data/07-python/README.md | 110 ++++----- .../2-Working-With-Data/07-python/README.md | 90 ++++---- .../2-Working-With-Data/07-python/README.md | 187 +++++++-------- .../2-Working-With-Data/07-python/README.md | 132 +++++------ .../2-Working-With-Data/07-python/README.md | 160 ++++++------- .../2-Working-With-Data/07-python/README.md | 146 ++++++------ .../2-Working-With-Data/07-python/README.md | 134 ++++++----- .../2-Working-With-Data/07-python/README.md | 96 ++++---- .../2-Working-With-Data/07-python/README.md | 146 ++++++------ .../2-Working-With-Data/07-python/README.md | 74 +++--- .../2-Working-With-Data/07-python/README.md | 92 ++++---- .../2-Working-With-Data/07-python/README.md | 94 ++++---- .../2-Working-With-Data/07-python/README.md | 118 +++++----- .../2-Working-With-Data/07-python/README.md | 108 ++++----- .../2-Working-With-Data/07-python/README.md | 129 +++++------ .../2-Working-With-Data/07-python/README.md | 92 ++++---- .../2-Working-With-Data/07-python/README.md | 84 +++---- .../2-Working-With-Data/07-python/README.md | 168 +++++++------- .../2-Working-With-Data/07-python/README.md | 92 ++++---- .../2-Working-With-Data/07-python/README.md | 155 ++++++------- .../2-Working-With-Data/07-python/README.md | 116 +++++----- .../2-Working-With-Data/07-python/README.md | 114 +++++----- .../2-Working-With-Data/07-python/README.md | 94 ++++---- .../2-Working-With-Data/07-python/README.md | 105 +++++---- 48 files changed, 2848 insertions(+), 2873 deletions(-) diff --git a/translations/ar/2-Working-With-Data/07-python/README.md b/translations/ar/2-Working-With-Data/07-python/README.md index 65806268..0ec7cc64 100644 --- a/translations/ar/2-Working-With-Data/07-python/README.md +++ b/translations/ar/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@ -# ডেটা নিয়ে কাজ করা: পাইথন এবং প্যান্ডাস লাইব্রেরি +# ডেটার সাথে কাজ করা: পাইথন এবং প্যান্ডাস লাইব্রেরি -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| ![ [(@sketchthedocs)](https://sketchthedocs.dev) এর স্কেচনোট ](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | -| পাইথন নিয়ে কাজ করা - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| পাইথনের সাথে কাজ করা - _[@nitya](https://twitter.com/nitya) এর স্কেচনোট_ | -[![Intro Video](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![পরিচিতি ভিডিও](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.bn.png)](https://youtu.be/dZjWOGbsN4Y) -যদিও ডেটাবেস ডেটা সংরক্ষণ এবং কুয়েরি করার জন্য খুবই কার্যকর পদ্ধতি প্রদান করে, ডেটা প্রক্রিয়াকরণের সবচেয়ে নমনীয় উপায় হলো নিজের প্রোগ্রাম লিখে ডেটা ম্যানিপুলেট করা। অনেক ক্ষেত্রে, ডেটাবেস কুয়েরি করা আরও কার্যকর হতে পারে। তবে, কিছু ক্ষেত্রে যখন আরও জটিল ডেটা প্রক্রিয়াকরণের প্রয়োজন হয়, এটি সহজে SQL ব্যবহার করে করা সম্ভব নয়। -ডেটা প্রক্রিয়াকরণ যেকোনো প্রোগ্রামিং ভাষায় করা যেতে পারে, তবে কিছু ভাষা ডেটা নিয়ে কাজ করার ক্ষেত্রে উচ্চতর স্তরের। ডেটা বিজ্ঞানীরা সাধারণত নিম্নলিখিত ভাষাগুলোর একটি পছন্দ করেন: +ডেটাবেস ডেটা সংরক্ষণ এবং কুয়েরি করার জন্য খুবই কার্যকর পদ্ধতি প্রদান করে, তবে ডেটা প্রক্রিয়াকরণের সবচেয়ে নমনীয় উপায় হল আপনার নিজের প্রোগ্রাম লিখে ডেটা ম্যানিপুলেট করা। অনেক ক্ষেত্রে, ডেটাবেস কুয়েরি করা আরও কার্যকর হতে পারে। তবে, কিছু ক্ষেত্রে যখন আরও জটিল ডেটা প্রক্রিয়াকরণের প্রয়োজন হয়, তখন এটি সহজে SQL ব্যবহার করে করা সম্ভব হয় না। +ডেটা প্রক্রিয়াকরণ যেকোনো প্রোগ্রামিং ভাষায় করা যেতে পারে, তবে কিছু ভাষা ডেটার সাথে কাজ করার জন্য উচ্চতর স্তরের সুবিধা প্রদান করে। ডেটা বিজ্ঞানীরা সাধারণত নিম্নলিখিত ভাষাগুলোর একটি পছন্দ করেন: -* **[Python](https://www.python.org/)**, একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা, যা এর সরলতার কারণে শিক্ষার্থীদের জন্য সেরা বিকল্প হিসেবে বিবেচিত হয়। পাইথনের অনেক অতিরিক্ত লাইব্রেরি রয়েছে যা আপনাকে অনেক বাস্তব সমস্যার সমাধান করতে সাহায্য করতে পারে, যেমন ZIP আর্কাইভ থেকে ডেটা বের করা বা ছবি গ্রেস্কেলে রূপান্তর করা। ডেটা বিজ্ঞান ছাড়াও, পাইথন ওয়েব ডেভেলপমেন্টের জন্যও প্রায়ই ব্যবহৃত হয়। -* **[R](https://www.r-project.org/)** একটি ঐতিহ্যবাহী টুলবক্স যা পরিসংখ্যানগত ডেটা প্রক্রিয়াকরণের জন্য তৈরি হয়েছে। এটি বড় লাইব্রেরি সংগ্রহ (CRAN) ধারণ করে, যা ডেটা প্রক্রিয়াকরণের জন্য একটি ভালো পছন্দ। তবে, R একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা নয় এবং ডেটা বিজ্ঞান ক্ষেত্রের বাইরে খুব কমই ব্যবহৃত হয়। -* **[Julia](https://julialang.org/)** আরেকটি ভাষা যা বিশেষভাবে ডেটা বিজ্ঞান জন্য তৈরি হয়েছে। এটি পাইথনের তুলনায় আরও ভালো পারফরম্যান্স দেওয়ার উদ্দেশ্যে তৈরি, যা বৈজ্ঞানিক পরীক্ষার জন্য একটি চমৎকার টুল। +* **[Python](https://www.python.org/)**: এটি একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা, যা এর সরলতার কারণে প্রায়শই শিক্ষার্থীদের জন্য সেরা বিকল্প হিসাবে বিবেচিত হয়। পাইথনের অনেক অতিরিক্ত লাইব্রেরি রয়েছে যা আপনাকে অনেক বাস্তব সমস্যার সমাধান করতে সাহায্য করতে পারে, যেমন ZIP আর্কাইভ থেকে ডেটা বের করা বা ছবি গ্রেস্কেলে রূপান্তর করা। ডেটা বিজ্ঞানের পাশাপাশি, পাইথন ওয়েব ডেভেলপমেন্টেও প্রায়শই ব্যবহৃত হয়। +* **[R](https://www.r-project.org/)**: এটি একটি ঐতিহ্যবাহী টুলবক্স যা পরিসংখ্যানগত ডেটা প্রক্রিয়াকরণের জন্য তৈরি। এটি একটি বড় লাইব্রেরি সংগ্রহ (CRAN) ধারণ করে, যা এটিকে ডেটা প্রক্রিয়াকরণের জন্য একটি ভালো পছন্দ করে তোলে। তবে, R একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা নয় এবং এটি ডেটা বিজ্ঞানের বাইরে খুব কমই ব্যবহৃত হয়। +* **[Julia](https://julialang.org/)**: এটি ডেটা বিজ্ঞানের জন্য বিশেষভাবে তৈরি একটি ভাষা। এটি পাইথনের চেয়ে ভালো পারফরম্যান্স দেওয়ার জন্য ডিজাইন করা হয়েছে, যা এটিকে বৈজ্ঞানিক পরীক্ষার জন্য একটি চমৎকার টুল করে তোলে। -এই পাঠে, আমরা সহজ ডেটা প্রক্রিয়াকরণের জন্য পাইথন ব্যবহার করার উপর মনোযোগ দেব। আমরা ভাষার মৌলিক পরিচিতি ধরে নেব। যদি আপনি পাইথনের আরও গভীর পরিচিতি চান, তাহলে নিম্নলিখিত উৎসগুলোর দিকে যেতে পারেন: +এই পাঠে, আমরা সহজ ডেটা প্রক্রিয়াকরণের জন্য পাইথন ব্যবহার করার উপর ফোকাস করব। আমরা ভাষার মৌলিক পরিচিতি ধরে নেব। যদি আপনি পাইথন সম্পর্কে আরও গভীরভাবে জানতে চান, তাহলে নিম্নলিখিত রিসোর্সগুলো দেখতে পারেন: -* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - পাইথন প্রোগ্রামিংয়ের জন্য একটি দ্রুত পরিচিতি কোর্স -* [Take your First Steps with Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)-এ একটি লার্নিং পাথ +* [Turtle Graphics এবং Fractals দিয়ে মজার উপায়ে পাইথন শিখুন](https://github.com/shwars/pycourse) - পাইথন প্রোগ্রামিংয়ের জন্য একটি গিটহাব-ভিত্তিক দ্রুত পরিচিতি কোর্স +* [পাইথনের সাথে আপনার প্রথম পদক্ষেপ নিন](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) এ লার্নিং পাথ -ডেটা বিভিন্ন রূপে আসতে পারে। এই পাঠে, আমরা তিনটি রূপের ডেটা বিবেচনা করব - **ট্যাবুলার ডেটা**, **টেক্সট** এবং **ইমেজ**। +ডেটা বিভিন্ন ফর্মে আসতে পারে। এই পাঠে, আমরা তিনটি ফর্মের ডেটা বিবেচনা করব - **টেবুলার ডেটা**, **টেক্সট** এবং **ইমেজ**। -আমরা সমস্ত সম্পর্কিত লাইব্রেরির পূর্ণ পর্যালোচনা দেওয়ার পরিবর্তে ডেটা প্রক্রিয়াকরণের কয়েকটি উদাহরণে মনোযোগ দেব। এটি আপনাকে কী কী সম্ভব তা বুঝতে সাহায্য করবে এবং যখন প্রয়োজন হবে তখন আপনার সমস্যার সমাধান কোথায় খুঁজে পাবেন তা বোঝার সুযোগ দেবে। +আমরা সমস্ত সম্পর্কিত লাইব্রেরির পূর্ণ পর্যালোচনা দেওয়ার পরিবর্তে কয়েকটি ডেটা প্রক্রিয়াকরণের উদাহরণে ফোকাস করব। এটি আপনাকে কী কী সম্ভব তা বোঝার মূল ধারণা দেবে এবং যখন প্রয়োজন হবে তখন আপনার সমস্যার সমাধান কোথায় খুঁজে পাবেন তা বোঝার সুযোগ দেবে। -> **সবচেয়ে কার্যকর পরামর্শ**। যখন আপনাকে ডেটার উপর একটি নির্দিষ্ট অপারেশন করতে হবে যা আপনি কীভাবে করবেন তা জানেন না, ইন্টারনেটে এটি অনুসন্ধান করার চেষ্টা করুন। [Stackoverflow](https://stackoverflow.com/) সাধারণত অনেক সাধারণ কাজের জন্য পাইথনে অনেক দরকারী কোড নমুনা ধারণ করে। +> **সবচেয়ে কার্যকর পরামর্শ**: যখন আপনাকে ডেটার উপর একটি নির্দিষ্ট অপারেশন করতে হবে এবং আপনি জানেন না কীভাবে করবেন, তখন ইন্টারনেটে এটি খুঁজে দেখুন। [Stackoverflow](https://stackoverflow.com/) প্রায়শই অনেক সাধারণ কাজের জন্য পাইথনে দরকারী কোড নমুনা সরবরাহ করে। -## [পাঠের পূর্ববর্তী কুইজ](https://ff-quizzes.netlify.app/en/ds/quiz/12) +## [পাঠ-পূর্ব কুইজ](https://ff-quizzes.netlify.app/en/ds/quiz/12) -## ট্যাবুলার ডেটা এবং ডেটাফ্রেম +## টেবুলার ডেটা এবং ডেটাফ্রেম -আপনি ইতিমধ্যে ট্যাবুলার ডেটার সাথে পরিচিত হয়েছেন যখন আমরা রিলেশনাল ডেটাবেস নিয়ে আলোচনা করেছি। যখন আপনার কাছে অনেক ডেটা থাকে এবং এটি অনেক ভিন্ন সংযুক্ত টেবিলে থাকে, তখন এটি নিয়ে কাজ করার জন্য SQL ব্যবহার করা অবশ্যই অর্থবহ। তবে, অনেক ক্ষেত্রে আমাদের একটি ডেটার টেবিল থাকে এবং আমরা এই ডেটা সম্পর্কে কিছু **বোঝাপড়া** বা **অন্তর্দৃষ্টি** পেতে চাই, যেমন ডিস্ট্রিবিউশন, মানগুলোর মধ্যে সম্পর্ক ইত্যাদি। ডেটা বিজ্ঞানে, অনেক ক্ষেত্রে আমাদের মূল ডেটার কিছু রূপান্তর করতে হয়, তারপরে ভিজ্যুয়ালাইজেশন। এই দুটি ধাপই পাইথন ব্যবহার করে সহজে করা যায়। +আপনি ইতিমধ্যে টেবুলার ডেটার সাথে পরিচিত হয়েছেন যখন আমরা রিলেশনাল ডেটাবেস নিয়ে আলোচনা করেছি। যখন আপনার কাছে অনেক ডেটা থাকে এবং এটি বিভিন্ন সংযুক্ত টেবিলে থাকে, তখন এটি পরিচালনার জন্য SQL ব্যবহার করা অবশ্যই যৌক্তিক। তবে, অনেক ক্ষেত্রে আমাদের একটি ডেটার টেবিল থাকে এবং আমরা এই ডেটা সম্পর্কে কিছু **বোঝাপড়া** বা **অন্তর্দৃষ্টি** পেতে চাই, যেমন ডিস্ট্রিবিউশন, মানগুলোর মধ্যে সম্পর্ক ইত্যাদি। ডেটা বিজ্ঞানে, অনেক সময় আমাদের মূল ডেটার কিছু রূপান্তর করতে হয়, তারপর ভিজ্যুয়ালাইজেশন করতে হয়। এই দুটি ধাপই পাইথন ব্যবহার করে সহজেই করা যায়। -পাইথনে ট্যাবুলার ডেটার সাথে কাজ করার জন্য দুটি সবচেয়ে দরকারী লাইব্রেরি রয়েছে: -* **[Pandas](https://pandas.pydata.org/)** আপনাকে তথাকথিত **ডেটাফ্রেম** ম্যানিপুলেট করতে দেয়, যা রিলেশনাল টেবিলের অনুরূপ। আপনি নামযুক্ত কলাম রাখতে পারেন এবং সারি, কলাম এবং ডেটাফ্রেমের উপর বিভিন্ন অপারেশন করতে পারেন। -* **[Numpy](https://numpy.org/)** একটি লাইব্রেরি যা **টেনসর**, অর্থাৎ বহু-মাত্রিক **অ্যারে** নিয়ে কাজ করে। অ্যারে একই ধরনের মান ধারণ করে এবং এটি ডেটাফ্রেমের চেয়ে সহজ, তবে এটি আরও বেশি গাণিতিক অপারেশন প্রদান করে এবং কম ওভারহেড তৈরি করে। +পাইথনে টেবুলার ডেটার সাথে কাজ করার জন্য দুটি সবচেয়ে দরকারী লাইব্রেরি হল: +* **[Pandas](https://pandas.pydata.org/)**: এটি আপনাকে **ডেটাফ্রেম** ম্যানিপুলেট করতে দেয়, যা রিলেশনাল টেবিলের অনুরূপ। আপনি নামকৃত কলাম পেতে পারেন এবং সারি, কলাম এবং ডেটাফ্রেমের উপর বিভিন্ন অপারেশন করতে পারেন। +* **[Numpy](https://numpy.org/)**: এটি **টেনসর**, অর্থাৎ বহু-মাত্রিক **অ্যারে** নিয়ে কাজ করার জন্য একটি লাইব্রেরি। অ্যারেতে একই ধরনের মান থাকে এবং এটি ডেটাফ্রেমের চেয়ে সহজ, তবে এটি আরও গাণিতিক অপারেশন প্রদান করে এবং কম ওভারহেড তৈরি করে। -এছাড়াও কয়েকটি অন্যান্য লাইব্রেরি রয়েছে যা আপনার জানা উচিত: -* **[Matplotlib](https://matplotlib.org/)** একটি লাইব্রেরি যা ডেটা ভিজ্যুয়ালাইজেশন এবং গ্রাফ আঁকার জন্য ব্যবহৃত হয় -* **[SciPy](https://www.scipy.org/)** একটি লাইব্রেরি যা কিছু অতিরিক্ত বৈজ্ঞানিক ফাংশন ধারণ করে। আমরা ইতিমধ্যে এই লাইব্রেরির সাথে পরিচিত হয়েছি যখন আমরা সম্ভাবনা এবং পরিসংখ্যান নিয়ে আলোচনা করেছি +এছাড়াও, আরও কিছু লাইব্রেরি রয়েছে যা আপনার জানা উচিত: +* **[Matplotlib](https://matplotlib.org/)**: এটি ডেটা ভিজ্যুয়ালাইজেশন এবং গ্রাফ আঁকার জন্য ব্যবহৃত একটি লাইব্রেরি +* **[SciPy](https://www.scipy.org/)**: এটি কিছু অতিরিক্ত বৈজ্ঞানিক ফাংশন সহ একটি লাইব্রেরি। আমরা ইতিমধ্যে এই লাইব্রেরির সাথে পরিচিত হয়েছি যখন আমরা সম্ভাবনা এবং পরিসংখ্যান নিয়ে আলোচনা করেছি -এখানে একটি কোডের অংশ রয়েছে যা আপনি সাধারণত আপনার পাইথন প্রোগ্রামের শুরুতে এই লাইব্রেরিগুলো আমদানি করতে ব্যবহার করবেন: +এখানে একটি কোডের অংশ রয়েছে যা আপনি সাধারণত আপনার পাইথন প্রোগ্রামের শুরুতে এই লাইব্রেরিগুলো ইমপোর্ট করতে ব্যবহার করবেন: ```python import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import ... # you need to specify exact sub-packages that you need -``` +``` -প্যান্ডাস কয়েকটি মৌলিক ধারণার উপর ভিত্তি করে তৈরি। +Pandas কয়েকটি মৌলিক ধারণার উপর ভিত্তি করে কাজ করে। -### সিরিজ +### সিরিজ (Series) -**সিরিজ** হলো মানগুলোর একটি ক্রম, যা তালিকা বা numpy অ্যারের মতো। প্রধান পার্থক্য হলো সিরিজের একটি **ইন্ডেক্স** থাকে, এবং যখন আমরা সিরিজের উপর অপারেশন করি (যেমন, যোগ করি), তখন ইন্ডেক্সটি বিবেচনা করা হয়। ইন্ডেক্সটি সাধারণ পূর্ণসংখ্যার সারি নম্বর হতে পারে (যখন তালিকা বা অ্যারে থেকে সিরিজ তৈরি করা হয় তখন এটি ডিফল্ট ইন্ডেক্স), অথবা এটি একটি জটিল কাঠামো, যেমন তারিখের সময়কাল হতে পারে। +**সিরিজ** হল মানগুলোর একটি ক্রম, যা একটি তালিকা বা numpy অ্যারের মতো। প্রধান পার্থক্য হল সিরিজের একটি **ইনডেক্স** থাকে, এবং যখন আমরা সিরিজের উপর অপারেশন করি (যেমন, যোগ করি), তখন ইনডেক্সটি বিবেচনায় নেওয়া হয়। ইনডেক্সটি একটি সাধারণ পূর্ণসংখ্যা সারি নম্বর হতে পারে (যখন তালিকা বা অ্যারে থেকে সিরিজ তৈরি করা হয়, এটি ডিফল্ট ইনডেক্স), অথবা এটি একটি জটিল কাঠামো, যেমন তারিখের সময়কাল হতে পারে। -> **নোট**: সংযুক্ত নোটবুকে [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb) কিছু প্রাথমিক প্যান্ডাস কোড রয়েছে। আমরা এখানে কিছু উদাহরণ তুলে ধরেছি, এবং আপনি অবশ্যই পুরো নোটবুকটি দেখতে পারেন। +> **নোট**: সহগামী নোটবুক [`notebook.ipynb`](notebook.ipynb)-এ কিছু প্রাথমিক Pandas কোড রয়েছে। আমরা এখানে কিছু উদাহরণ উল্লেখ করেছি, এবং আপনি অবশ্যই পুরো নোটবুকটি দেখতে পারেন। -একটি উদাহরণ বিবেচনা করুন: আমরা আমাদের আইসক্রিম স্পটের বিক্রয় বিশ্লেষণ করতে চাই। আসুন কিছু সময়ের জন্য বিক্রয়ের সংখ্যা (প্রতিদিন বিক্রি হওয়া আইটেমের সংখ্যা) একটি সিরিজ তৈরি করি: +উদাহরণস্বরূপ, আমরা আমাদের আইসক্রিম দোকানের বিক্রয় বিশ্লেষণ করতে চাই। চলুন একটি নির্দিষ্ট সময়ের জন্য বিক্রয়ের সংখ্যা (প্রতিদিন বিক্রি হওয়া আইটেমের সংখ্যা) তৈরি করি: ```python start_date = "Jan 1, 2020" @@ -72,48 +72,48 @@ idx = pd.date_range(start_date,end_date) print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() -``` -![Time Series Plot](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +``` +![টাইম সিরিজ প্লট](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.bn.png) -এখন ধরুন প্রতি সপ্তাহে আমরা বন্ধুদের জন্য একটি পার্টি আয়োজন করি এবং পার্টির জন্য অতিরিক্ত ১০ প্যাক আইসক্রিম নিয়ে যাই। আমরা এটি প্রদর্শনের জন্য একটি সিরিজ তৈরি করতে পারি: +এখন ধরুন প্রতি সপ্তাহে আমরা বন্ধুদের জন্য একটি পার্টি আয়োজন করি এবং পার্টির জন্য অতিরিক্ত ১০ প্যাক আইসক্রিম নিই। আমরা এটি দেখানোর জন্য সপ্তাহ অনুযায়ী ইনডেক্স করা আরেকটি সিরিজ তৈরি করতে পারি: ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) -``` -যখন আমরা দুটি সিরিজ যোগ করি, তখন আমরা মোট সংখ্যা পাই: +``` +যখন আমরা দুটি সিরিজ যোগ করি, তখন আমরা মোট সংখ্যা পাই: ```python total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() -``` -![Time Series Plot](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +``` +![টাইম সিরিজ প্লট](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.bn.png) -> **নোট** যে আমরা সাধারণ সিনট্যাক্স `total_items+additional_items` ব্যবহার করছি না। যদি আমরা করতাম, তাহলে আমরা অনেক `NaN` (*Not a Number*) মান পেতাম ফলাফলের সিরিজে। এর কারণ হলো `additional_items` সিরিজের কিছু ইন্ডেক্স পয়েন্টে মান অনুপস্থিত, এবং `NaN` যোগ করলে ফলাফল `NaN` হয়। তাই যোগ করার সময় আমাদের `fill_value` প্যারামিটার নির্দিষ্ট করতে হবে। +> **নোট** যে আমরা সাধারণ সিনট্যাক্স `total_items+additional_items` ব্যবহার করছি না। যদি করতাম, তাহলে আমরা অনেক `NaN` (*Not a Number*) মান পেতাম। এর কারণ হল `additional_items` সিরিজের কিছু ইনডেক্স পয়েন্টে মান অনুপস্থিত, এবং `NaN`-এর সাথে কিছু যোগ করলে ফলাফল `NaN` হয়। তাই যোগ করার সময় আমাদের `fill_value` প্যারামিটার নির্দিষ্ট করতে হয়। -টাইম সিরিজের সাথে, আমরা বিভিন্ন সময়ের ব্যবধানে সিরিজ **রিস্যাম্পল** করতে পারি। উদাহরণস্বরূপ, ধরুন আমরা মাসিক গড় বিক্রয় পরিমাণ গণনা করতে চাই। আমরা নিম্নলিখিত কোড ব্যবহার করতে পারি: +টাইম সিরিজের সাথে, আমরা বিভিন্ন সময়ের ব্যবধানে সিরিজ **পুনঃনমুনা** করতে পারি। উদাহরণস্বরূপ, ধরুন আমরা মাসিক গড় বিক্রয় পরিমাণ গণনা করতে চাই। আমরা নিম্নলিখিত কোড ব্যবহার করতে পারি: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') -``` -![Monthly Time Series Averages](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +``` +![মাসিক টাইম সিরিজ গড়](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.bn.png) -### ডেটাফ্রেম +### ডেটাফ্রেম (DataFrame) -ডেটাফ্রেম মূলত একই ইন্ডেক্স সহ সিরিজের একটি সংগ্রহ। আমরা একাধিক সিরিজ একসাথে ডেটাফ্রেমে সংযুক্ত করতে পারি: +ডেটাফ্রেম মূলত একই ইনডেক্স সহ সিরিজের একটি সংগ্রহ। আমরা একাধিক সিরিজ একত্রিত করে একটি ডেটাফ্রেম তৈরি করতে পারি: ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) df = pd.DataFrame([a,b]) -``` -এটি একটি অনুভূমিক টেবিল তৈরি করবে: +``` +এটি একটি অনুভূমিক টেবিল তৈরি করবে: | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | | --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -| 1 | I | like | to | use | Python | and | Pandas | very | much | +| 1 | I | like | to | use | Python | and | Pandas | very | much | -আমরা সিরিজকে কলাম হিসেবে ব্যবহার করতে পারি এবং ডিকশনারি ব্যবহার করে কলামের নাম নির্দিষ্ট করতে পারি: +আমরা সিরিজগুলো কলাম হিসেবে ব্যবহার করতে পারি এবং ডিকশনারি ব্যবহার করে কলামের নাম নির্দিষ্ট করতে পারি: ```python df = pd.DataFrame({ 'A' : a, 'B' : b }) -``` -এটি আমাদের একটি টেবিল দেবে: +``` +এটি আমাদের একটি টেবিল দেবে: | | A | B | | --- | --- | ------ | @@ -125,41 +125,41 @@ df = pd.DataFrame({ 'A' : a, 'B' : b }) | 5 | 6 | and | | 6 | 7 | Pandas | | 7 | 8 | very | -| 8 | 9 | much | +| 8 | 9 | much | -**নোট** যে আমরা আগের টেবিলটি ট্রান্সপোজ করে এই টেবিল লেআউটও পেতে পারি, যেমন লিখে +**নোট** যে আমরা আগের টেবিলটি ট্রান্সপোজ করে এই টেবিল লেআউটও পেতে পারি, যেমন লিখে: ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) -``` -এখানে `.T` ডেটাফ্রেম ট্রান্সপোজ করার অপারেশন নির্দেশ করে, অর্থাৎ সারি এবং কলাম পরিবর্তন করা, এবং `rename` অপারেশন আমাদের কলামগুলোর নাম পরিবর্তন করতে দেয় যাতে এটি আগের উদাহরণের সাথে মিলে যায়। +``` +এখানে `.T` ডেটাফ্রেম ট্রান্সপোজ করার অপারেশন নির্দেশ করে, অর্থাৎ সারি এবং কলাম পরিবর্তন করা, এবং `rename` অপারেশন আমাদের কলামগুলোর নাম পরিবর্তন করতে দেয় যাতে এটি আগের উদাহরণের সাথে মেলে। -ডেটাফ্রেমে আমরা কয়েকটি গুরুত্বপূর্ণ অপারেশন করতে পারি: +ডেটাফ্রেমে আমরা যে কয়েকটি গুরুত্বপূর্ণ অপারেশন করতে পারি তা হলো: -**কলাম নির্বাচন**। আমরা `df['A']` লিখে পৃথক কলাম নির্বাচন করতে পারি - এই অপারেশন একটি সিরিজ প্রদান করে। আমরা `df[['B','A']]` লিখে কলামের একটি সাবসেট অন্য ডেটাফ্রেমে নির্বাচন করতে পারি - এটি আরেকটি ডেটাফ্রেম প্রদান করে। +**কলাম নির্বাচন**। আমরা `df['A']` লিখে পৃথক কলাম নির্বাচন করতে পারি - এই অপারেশন একটি সিরিজ প্রদান করে। আমরা `df[['B','A']]` লিখে কলামের একটি সাবসেট অন্য ডেটাফ্রেমে নির্বাচন করতে পারি - এটি আরেকটি ডেটাফ্রেম প্রদান করে। -**নির্দিষ্ট মানদণ্ড অনুযায়ী সারি ফিল্টার করা**। উদাহরণস্বরূপ, কলাম `A` এর মান ৫ এর বেশি রেখে শুধুমাত্র সারি রাখতে আমরা লিখতে পারি `df[df['A']>5]`। +**নির্দিষ্ট ক্রাইটেরিয়ার উপর ভিত্তি করে সারি ফিল্টার করা**। উদাহরণস্বরূপ, শুধুমাত্র সেই সারিগুলো রাখতে যেখানে কলাম `A` ৫-এর চেয়ে বড়, আমরা লিখতে পারি `df[df['A']>5]`। -> **নোট**: ফিল্টারিং যেভাবে কাজ করে তা হলো নিম্নরূপ। `df['A']<5` এক্সপ্রেশন একটি বুলিয়ান সিরিজ প্রদান করে, যা মূল সিরিজ `df['A']` এর প্রতিটি উপাদানের জন্য এক্সপ্রেশনটি `True` বা `False` কিনা তা নির্দেশ করে। যখন বুলিয়ান সিরিজটি একটি ইন্ডেক্স হিসেবে ব্যবহৃত হয়, এটি ডেটাফ্রেমে সারিগুলোর একটি সাবসেট প্রদান করে। তাই এটি সম্ভব নয় যে যেকোনো পাইটন বুলিয়ান এক্সপ্রেশন ব্যবহার করা যাবে, উদাহরণস্বরূপ, `df[df['A']>5 and df['A']<7]` লেখা ভুল হবে। পরিবর্তে, আপনাকে বুলিয়ান সিরিজে বিশেষ `&` অপারেশন ব্যবহার করতে হবে, যেমন লিখতে হবে `df[(df['A']>5) & (df['A']<7)]` (*এখানে বন্ধনীগুলো গুরুত্বপূর্ণ*). +> **নোট**: ফিল্টারিং যেভাবে কাজ করে তা হলো নিম্নরূপ। `df['A']<5` এক্সপ্রেশন একটি বুলিয়ান সিরিজ প্রদান করে, যা নির্দেশ করে যে মূল সিরিজ `df['A']`-এর প্রতিটি উপাদানের জন্য এক্সপ্রেশনটি `True` বা `False`। যখন বুলিয়ান সিরিজটি ইনডেক্স হিসেবে ব্যবহার করা হয়, এটি ডেটাফ্রেমের সারিগুলোর একটি সাবসেট প্রদান করে। তাই যেকোনো পাইথন বুলিয়ান এক্সপ্রেশন ব্যবহার করা সম্ভব নয়, উদাহরণস্বরূপ, `df[df['A']>5 and df['A']<7]` লেখা ভুল হবে। পরিবর্তে, আপনাকে বুলিয়ান সিরিজে বিশেষ `&` অপারেশন ব্যবহার করতে হবে, যেমন লিখতে হবে `df[(df['A']>5) & (df['A']<7)]` (*এখানে বন্ধনীগুলো গুরুত্বপূর্ণ*)। -**নতুন গণনাযোগ্য কলাম তৈরি করা**। আমরা সহজেই আমাদের ডেটাফ্রেমের জন্য নতুন গণনাযোগ্য কলাম তৈরি করতে পারি, যেমন: +**নতুন গণনাযোগ্য কলাম তৈরি করা**। আমরা সহজেই আমাদের ডেটাফ্রেমের জন্য নতুন গণনাযোগ্য কলাম তৈরি করতে পারি, যেমন: ```python df['DivA'] = df['A']-df['A'].mean() -``` -এই উদাহরণটি `A` এর গড় মান থেকে বিচ্যুতি গণনা করে। এখানে যা ঘটে তা হলো আমরা একটি সিরিজ গণনা করছি এবং তারপর এই সিরিজটি বাম দিকে বরাদ্দ করছি, একটি নতুন কলাম তৈরি করছি। তাই, আমরা এমন কোনো অপারেশন ব্যবহার করতে পারি না যা সিরিজের সাথে সামঞ্জস্যপূর্ণ নয়, উদাহরণস্বরূপ, নিচের কোডটি ভুল: +``` +এই উদাহরণটি A-এর গড় মান থেকে তার বিচ্যুতি গণনা করে। এখানে যা ঘটে তা হলো আমরা একটি সিরিজ গণনা করছি এবং তারপর এই সিরিজটি বাম দিকে অ্যাসাইন করছি, একটি নতুন কলাম তৈরি করছি। তাই, আমরা এমন কোনো অপারেশন ব্যবহার করতে পারি না যা সিরিজের সাথে সামঞ্জস্যপূর্ণ নয়, উদাহরণস্বরূপ, নিচের কোডটি ভুল: ```python # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result -``` -শেষ উদাহরণটি, যদিও সিনট্যাকটিক্যালি সঠিক, আমাদের ভুল ফলাফল দেয়, কারণ এটি সিরিজ `B` এর দৈর্ঘ্যকে কলামের সমস্ত মানে বরাদ্দ করে, এবং আমরা যা চেয়েছিলাম তা নয়। +``` +শেষ উদাহরণটি, যদিও সিনট্যাক্সগতভাবে সঠিক, আমাদের ভুল ফলাফল দেয়, কারণ এটি সিরিজ `B`-এর দৈর্ঘ্য কলামের সমস্ত মানে অ্যাসাইন করে, এবং আমরা যা চেয়েছিলাম তা নয়। -যদি আমাদের এই ধরনের জটিল এক্সপ্রেশন গণনা করতে হয়, তাহলে আমরা `apply` ফাংশন ব্যবহার করতে পারি। শেষ উদাহরণটি নিম্নরূপ লেখা যেতে পারে: +যদি আমাদের এই ধরনের জটিল এক্সপ্রেশন গণনা করতে হয়, তবে আমরা `apply` ফাংশন ব্যবহার করতে পারি। শেষ উদাহরণটি নিম্নরূপ লেখা যেতে পারে: ```python df['LenB'] = df['B'].apply(lambda x : len(x)) # or df['LenB'] = df['B'].apply(len) -``` +``` -উপরের অপারেশনগুলোর পরে, আমরা নিম্নলিখিত ডেটাফ্রেম পাব: +উপরের অপারেশনগুলোর পরে, আমরা নিম্নলিখিত ডেটাফ্রেম পাব: | | A | B | DivA | LenB | | --- | --- | ------ | ---- | ---- | @@ -171,24 +171,24 @@ df['LenB'] = df['B'].apply(len) | 5 | 6 | and | 1.0 | 3 | | 6 | 7 | Pandas | 2.0 | 6 | | 7 | 8 | very | 3.0 | 4 | -| 8 | 9 | much | 4.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | -**সংখ্যার উপর ভিত্তি করে সারি নির্বাচন** `iloc` কনস্ট্রাক্ট ব্যবহার করে করা যেতে পারে। উদাহরণস্বরূপ, ডেটাফ্রেম থেকে প্রথম ৫টি সারি নির্বাচন করতে: +**সংখ্যার উপর ভিত্তি করে সারি নির্বাচন** `iloc` কন্সট্রাক্ট ব্যবহার করে করা যেতে পারে। উদাহরণস্বরূপ, ডেটাফ্রেম থেকে প্রথম ৫টি সারি নির্বাচন করতে: ```python df.iloc[:5] -``` +``` -**গ্রুপিং** প্রায়ই *পিভট টেবিল* এর মতো ফলাফল পেতে ব্যবহৃত হয়। ধরুন আমরা `LenB` এর প্রতিটি নির্দিষ্ট সংখ্যার জন্য কলাম `A` এর গড় মান গণনা করতে চাই। তখন আমরা আমাদের ডেটাফ্রেমকে `LenB` দ্বারা গ্রুপ করতে পারি এবং `mean` কল করতে পারি: +**গ্রুপিং** প্রায়শই এক্সেলে *পিভট টেবিল* এর মতো ফলাফল পেতে ব্যবহৃত হয়। ধরুন আমরা `LenB`-এর প্রতিটি নির্দিষ্ট সংখ্যার জন্য কলাম `A`-এর গড় মান গণনা করতে চাই। তখন আমরা আমাদের ডেটাফ্রেমকে `LenB` দ্বারা গ্রুপ করতে পারি এবং `mean` কল করতে পারি: ```python -df.groupby(by='LenB').mean() -``` -যদি আমাদের গড় এবং গ্রুপে উপাদানের সংখ্যা গণনা করতে হয়, তাহলে আমরা আরও জটিল `aggregate` ফাংশন ব্যবহার করতে পারি: +df.groupby(by='LenB')[['A','DivA']].mean() +``` +যদি আমাদের গ্রুপে গড় এবং উপাদানের সংখ্যা গণনা করতে হয়, তবে আমরা আরও জটিল `aggregate` ফাংশন ব্যবহার করতে পারি: ```python df.groupby(by='LenB') \ .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) -``` -এটি আমাদের নিম্নলিখিত টেবিল দেবে: +``` +এটি আমাদের নিম্নলিখিত টেবিল দেবে: | LenB | Count | Mean | | ---- | ----- | -------- | @@ -196,30 +196,30 @@ df.groupby(by='LenB') \ | 2 | 1 | 3.000000 | | 3 | 2 | 5.000000 | | 4 | 3 | 6.333333 | -| 6 | 2 | 6.000000 | +| 6 | 2 | 6.000000 | -### ডেটা সংগ্রহ করা -আমরা দেখেছি কীভাবে Python অবজেক্ট থেকে সহজেই Series এবং DataFrames তৈরি করা যায়। তবে, সাধারণত ডেটা একটি টেক্সট ফাইল বা Excel টেবিল আকারে আসে। সৌভাগ্যক্রমে, Pandas আমাদের ডিস্ক থেকে ডেটা লোড করার একটি সহজ উপায় প্রদান করে। উদাহরণস্বরূপ, CSV ফাইল পড়া এতটাই সহজ: +### ডেটা সংগ্রহ করা +আমরা দেখেছি কীভাবে Python অবজেক্ট থেকে সহজেই Series এবং DataFrames তৈরি করা যায়। তবে, ডেটা সাধারণত টেক্সট ফাইল বা Excel টেবিলের আকারে আসে। সৌভাগ্যক্রমে, Pandas আমাদের ডিস্ক থেকে ডেটা লোড করার একটি সহজ উপায় প্রদান করে। উদাহরণস্বরূপ, CSV ফাইল পড়া এতটাই সহজ: ```python df = pd.read_csv('file.csv') ``` -আমরা "Challenge" সেকশনে আরও উদাহরণ দেখব, যেখানে বাইরের ওয়েবসাইট থেকে ডেটা আনার বিষয়ও থাকবে। +আমরা "Challenge" সেকশনে আরও উদাহরণ দেখব, যেখানে বাইরের ওয়েবসাইট থেকে ডেটা আনার বিষয়টি অন্তর্ভুক্ত থাকবে। ### প্রিন্টিং এবং প্লটিং -একজন Data Scientist প্রায়ই ডেটা অন্বেষণ করতে হয়, তাই এটি ভিজ্যুয়ালাইজ করার ক্ষমতা থাকা গুরুত্বপূর্ণ। যখন DataFrame বড় হয়, তখন অনেক সময় আমরা নিশ্চিত হতে চাই যে আমরা সবকিছু সঠিকভাবে করছি, এবং এর জন্য প্রথম কয়েকটি সারি প্রিন্ট করা দরকার। এটি `df.head()` কল করে করা যায়। যদি আপনি এটি Jupyter Notebook থেকে চালান, এটি DataFrame-কে সুন্দর টেবিল আকারে প্রিন্ট করবে। +একজন Data Scientist প্রায়ই ডেটা অন্বেষণ করতে হয়, তাই এটি ভিজ্যুয়ালাইজ করার ক্ষমতা থাকা গুরুত্বপূর্ণ। যখন DataFrame বড় হয়, তখন অনেক সময় আমরা নিশ্চিত হতে চাই যে আমরা সবকিছু সঠিকভাবে করছি, এবং এর জন্য প্রথম কয়েকটি সারি প্রিন্ট করা দরকার। এটি `df.head()` কল করে করা যায়। যদি আপনি Jupyter Notebook থেকে এটি চালান, এটি DataFrame-কে সুন্দর টেবিল আকারে প্রিন্ট করবে। -আমরা `plot` ফাংশনের ব্যবহারও দেখেছি কিছু কলাম ভিজ্যুয়ালাইজ করার জন্য। যদিও `plot` অনেক কাজের জন্য খুবই উপযোগী এবং `kind=` প্যারামিটারের মাধ্যমে বিভিন্ন গ্রাফ টাইপ সমর্থন করে, আপনি সবসময় raw `matplotlib` লাইব্রেরি ব্যবহার করে আরও জটিল কিছু প্লট করতে পারেন। আমরা আলাদা কোর্স লেসনে ডেটা ভিজ্যুয়ালাইজেশন বিস্তারিতভাবে আলোচনা করব। +আমরা `plot` ফাংশনের ব্যবহারও দেখেছি কিছু কলাম ভিজ্যুয়ালাইজ করার জন্য। যদিও `plot` অনেক কাজের জন্য খুবই উপযোগী এবং `kind=` প্যারামিটারের মাধ্যমে বিভিন্ন গ্রাফ টাইপ সমর্থন করে, আপনি সবসময় কাঁচা `matplotlib` লাইব্রেরি ব্যবহার করে আরও জটিল কিছু প্লট করতে পারেন। আমরা আলাদা কোর্স লেসনে ডেটা ভিজ্যুয়ালাইজেশন বিস্তারিতভাবে আলোচনা করব। -এই ওভারভিউটি Pandas-এর সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলো কভার করে, তবে লাইব্রেরিটি খুবই সমৃদ্ধ এবং এর মাধ্যমে আপনি যা করতে পারেন তার কোনো সীমা নেই! এখন চলুন এই জ্ঞান ব্যবহার করে একটি নির্দিষ্ট সমস্যার সমাধান করি। +এই ওভারভিউ Pandas-এর সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলো কভার করে, তবে লাইব্রেরিটি খুবই সমৃদ্ধ এবং এর মাধ্যমে আপনি অসীম কাজ করতে পারেন! এখন চলুন এই জ্ঞান ব্যবহার করে একটি নির্দিষ্ট সমস্যার সমাধান করি। ## 🚀 চ্যালেঞ্জ ১: COVID ছড়ানোর বিশ্লেষণ -প্রথম সমস্যাটি আমরা ফোকাস করব COVID-19-এর মহামারী ছড়ানোর মডেলিংয়ে। এটি করার জন্য, আমরা বিভিন্ন দেশে আক্রান্ত ব্যক্তিদের সংখ্যা সম্পর্কিত ডেটা ব্যবহার করব, যা [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) দ্বারা [Johns Hopkins University](https://jhu.edu/) থেকে সরবরাহ করা হয়েছে। ডেটাসেটটি [এই GitHub Repository](https://github.com/CSSEGISandData/COVID-19)-তে পাওয়া যাবে। +প্রথম সমস্যাটি আমরা ফোকাস করব COVID-19-এর মহামারী ছড়ানোর মডেলিংয়ে। এটি করার জন্য, আমরা বিভিন্ন দেশে আক্রান্ত ব্যক্তিদের সংখ্যা সম্পর্কিত ডেটা ব্যবহার করব, যা [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) দ্বারা [Johns Hopkins University](https://jhu.edu/) থেকে সরবরাহ করা হয়েছে। ডেটাসেটটি [এই GitHub Repository](https://github.com/CSSEGISandData/COVID-19)-এ উপলব্ধ। -যেহেতু আমরা ডেটা নিয়ে কাজ করার পদ্ধতি প্রদর্শন করতে চাই, আমরা আপনাকে [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) খুলে শুরু থেকে শেষ পর্যন্ত পড়ার আমন্ত্রণ জানাই। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের দেওয়া কিছু চ্যালেঞ্জও করতে পারেন। +যেহেতু আমরা ডেটা নিয়ে কাজ করার পদ্ধতি প্রদর্শন করতে চাই, আমরা আপনাকে [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) খুলে শুরু থেকে শেষ পর্যন্ত পড়ার আমন্ত্রণ জানাই। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের দেওয়া কিছু চ্যালেঞ্জ সম্পন্ন করতে পারেন। -![COVID ছড়ানো](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![COVID ছড়ানো](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.bn.png) > যদি আপনি Jupyter Notebook-এ কোড চালানোর পদ্ধতি না জানেন, [এই আর্টিকেলটি](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) দেখুন। @@ -227,58 +227,58 @@ df = pd.read_csv('file.csv') যদিও ডেটা প্রায়ই টেবুলার আকারে আসে, কিছু ক্ষেত্রে আমাদের কম সংগঠিত ডেটার সাথে কাজ করতে হয়, যেমন টেক্সট বা ছবি। এই ক্ষেত্রে, উপরে দেখা ডেটা প্রসেসিং কৌশল প্রয়োগ করতে, আমাদের **সংগঠিত** ডেটা বের করতে হয়। এখানে কিছু উদাহরণ দেওয়া হলো: -* টেক্সট থেকে কীওয়ার্ড বের করা এবং সেগুলো কতবার উপস্থিত হয়েছে তা দেখা -* ছবিতে থাকা অবজেক্ট সম্পর্কে তথ্য বের করতে নিউরাল নেটওয়ার্ক ব্যবহার করা +* টেক্সট থেকে কীওয়ার্ড বের করা এবং কীভাবে সেগুলো কতবার উপস্থিত হয় তা দেখা +* ছবিতে অবজেক্ট সম্পর্কে তথ্য বের করতে নিউরাল নেটওয়ার্ক ব্যবহার করা * ভিডিও ক্যামেরা ফিডে মানুষের আবেগ সম্পর্কে তথ্য পাওয়া -## 🚀 চ্যালেঞ্জ ২: COVID সম্পর্কিত গবেষণাপত্র বিশ্লেষণ +## 🚀 চ্যালেঞ্জ ২: COVID পেপার বিশ্লেষণ -এই চ্যালেঞ্জে, আমরা COVID মহামারীর বিষয়টি চালিয়ে যাব এবং এই বিষয়ে বৈজ্ঞানিক গবেষণাপত্র প্রসেসিংয়ে ফোকাস করব। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)-এ ৭০০০-এর বেশি (লেখার সময়) COVID সম্পর্কিত গবেষণাপত্র রয়েছে, যা মেটাডেটা এবং অ্যাবস্ট্রাক্টসহ পাওয়া যায় (এবং এর মধ্যে প্রায় অর্ধেকের পূর্ণ টেক্সটও সরবরাহ করা হয়েছে)। +এই চ্যালেঞ্জে, আমরা COVID মহামারীর বিষয়টি নিয়ে আলোচনা চালিয়ে যাব এবং এই বিষয়ে বৈজ্ঞানিক পেপার প্রসেসিংয়ে ফোকাস করব। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)-এ ৭০০০-এর বেশি (লেখার সময়) COVID সম্পর্কিত পেপার রয়েছে, যা মেটাডেটা এবং অ্যাবস্ট্রাক্টসহ উপলব্ধ (এবং এর মধ্যে প্রায় অর্ধেকের জন্য পূর্ণ টেক্সটও সরবরাহ করা হয়েছে)। -এই ডেটাসেট বিশ্লেষণের একটি পূর্ণ উদাহরণ [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) কগনিটিভ সার্ভিস ব্যবহার করে [এই ব্লগ পোস্টে](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) বর্ণনা করা হয়েছে। আমরা এই বিশ্লেষণের একটি সরলীকৃত সংস্করণ আলোচনা করব। +এই ডেটাসেট বিশ্লেষণের একটি পূর্ণ উদাহরণ [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) কগনিটিভ সার্ভিস ব্যবহার করে [এই ব্লগ পোস্টে](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) বর্ণনা করা হয়েছে। আমরা এই বিশ্লেষণের সরলীকৃত সংস্করণ আলোচনা করব। -> **NOTE**: আমরা এই রিপোজিটরির অংশ হিসেবে ডেটাসেটের একটি কপি সরবরাহ করি না। প্রথমে আপনাকে [এই ডেটাসেটের Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) থেকে [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ফাইল ডাউনলোড করতে হতে পারে। Kaggle-এ রেজিস্ট্রেশন প্রয়োজন হতে পারে। আপনি রেজিস্ট্রেশন ছাড়াও [এখান থেকে](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ডেটাসেট ডাউনলোড করতে পারেন, তবে এটি মেটাডেটা ফাইলের পাশাপাশি সমস্ত পূর্ণ টেক্সট অন্তর্ভুক্ত করবে। +> **NOTE**: আমরা এই রিপোজিটরির অংশ হিসেবে ডেটাসেটের একটি কপি সরবরাহ করি না। প্রথমে আপনাকে [এই ডেটাসেটের Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) থেকে [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ফাইলটি ডাউনলোড করতে হতে পারে। Kaggle-এ রেজিস্ট্রেশন প্রয়োজন হতে পারে। আপনি রেজিস্ট্রেশন ছাড়াও [এখান থেকে](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ডেটাসেট ডাউনলোড করতে পারেন, তবে এটি মেটাডেটা ফাইলের পাশাপাশি সমস্ত পূর্ণ টেক্সট অন্তর্ভুক্ত করবে। -[`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) খুলুন এবং শুরু থেকে শেষ পর্যন্ত পড়ুন। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের দেওয়া কিছু চ্যালেঞ্জও করতে পারেন। +[`notebook-papers.ipynb`](notebook-papers.ipynb) খুলুন এবং শুরু থেকে শেষ পর্যন্ত পড়ুন। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের দেওয়া কিছু চ্যালেঞ্জ সম্পন্ন করতে পারেন। -![Covid চিকিৎসা](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![Covid মেডিকেল ট্রিটমেন্ট](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.bn.png) ## ইমেজ ডেটা প্রসেসিং সম্প্রতি, খুব শক্তিশালী AI মডেল তৈরি করা হয়েছে যা আমাদের ছবি বুঝতে সাহায্য করে। অনেক কাজ প্রি-ট্রেইনড নিউরাল নেটওয়ার্ক বা ক্লাউড সার্ভিস ব্যবহার করে সমাধান করা যায়। কিছু উদাহরণ হলো: -* **ইমেজ ক্লাসিফিকেশন**, যা আপনাকে ছবিকে পূর্বনির্ধারিত ক্লাসগুলোর মধ্যে একটিতে শ্রেণীবদ্ধ করতে সাহায্য করে। আপনি [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) সার্ভিস ব্যবহার করে সহজেই নিজের ইমেজ ক্লাসিফায়ার ট্রেইন করতে পারেন। +* **ইমেজ ক্লাসিফিকেশন**, যা আপনাকে ছবিকে পূর্বনির্ধারিত ক্লাসগুলোর মধ্যে একটিতে শ্রেণীবদ্ধ করতে সাহায্য করে। আপনি সহজেই [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) সার্ভিস ব্যবহার করে নিজের ইমেজ ক্লাসিফায়ার ট্রেইন করতে পারেন। * **অবজেক্ট ডিটেকশন** ছবিতে বিভিন্ন অবজেক্ট সনাক্ত করতে। [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) সার্ভিস অনেক সাধারণ অবজেক্ট সনাক্ত করতে পারে, এবং আপনি [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) মডেল ট্রেইন করে নির্দিষ্ট আগ্রহের অবজেক্ট সনাক্ত করতে পারেন। -* **ফেস ডিটেকশন**, যার মধ্যে বয়স, লিঙ্গ এবং আবেগ সনাক্তকরণ অন্তর্ভুক্ত। এটি [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)-এর মাধ্যমে করা যায়। +* **ফেস ডিটেকশন**, যার মধ্যে বয়স, লিঙ্গ এবং আবেগ সনাক্তকরণ অন্তর্ভুক্ত। এটি [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে করা যায়। এই সমস্ত ক্লাউড সার্ভিস [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে কল করা যায় এবং সহজেই আপনার ডেটা এক্সপ্লোরেশন ওয়ার্কফ্লোতে অন্তর্ভুক্ত করা যায়। এখানে ইমেজ ডেটা সোর্স থেকে ডেটা এক্সপ্লোর করার কিছু উদাহরণ দেওয়া হলো: -* ব্লগ পোস্ট [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/)-এ আমরা Instagram ছবিগুলো এক্সপ্লোর করি, চেষ্টা করি বুঝতে কীভাবে একটি ছবিতে বেশি লাইক পাওয়া যায়। আমরা প্রথমে [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ছবিগুলো থেকে যতটা সম্ভব তথ্য বের করি এবং তারপর [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে একটি ব্যাখ্যাযোগ্য মডেল তৈরি করি। -* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)-এ আমরা [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ইভেন্টের ছবিতে থাকা মানুষের আবেগ বের করি, চেষ্টা করি বুঝতে কী মানুষকে খুশি করে। +* ব্লগ পোস্ট [কোডিং ছাড়াই ডেটা সায়েন্স শেখার উপায়](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) এ আমরা Instagram ছবিগুলো এক্সপ্লোর করি, চেষ্টা করি বুঝতে কীভাবে একটি ছবিতে বেশি লাইক পাওয়া যায়। আমরা প্রথমে [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ছবিগুলো থেকে যতটা সম্ভব তথ্য বের করি এবং তারপর [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে একটি ব্যাখ্যাযোগ্য মডেল তৈরি করি। +* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)-এ আমরা [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ইভেন্টের ছবিতে মানুষের আবেগ বের করি, চেষ্টা করি বুঝতে কীভাবে মানুষকে খুশি করা যায়। ## উপসংহার -আপনার কাছে সংগঠিত বা অসংগঠিত ডেটা যাই থাকুক না কেন, Python ব্যবহার করে আপনি ডেটা প্রসেসিং এবং বোঝার সাথে সম্পর্কিত সমস্ত ধাপ সম্পন্ন করতে পারেন। এটি সম্ভবত ডেটা প্রসেসিংয়ের সবচেয়ে নমনীয় উপায়, এবং এ কারণেই বেশিরভাগ Data Scientist Python-কে তাদের প্রধান টুল হিসেবে ব্যবহার করেন। যদি আপনি আপনার ডেটা সায়েন্স যাত্রায় সিরিয়াস হন, Python গভীরভাবে শেখা সম্ভবত একটি ভালো ধারণা! +আপনার কাছে সংগঠিত বা অসংগঠিত ডেটা যাই থাকুক না কেন, Python ব্যবহার করে আপনি ডেটা প্রসেসিং এবং বোঝার সাথে সম্পর্কিত সমস্ত ধাপ সম্পন্ন করতে পারেন। এটি সম্ভবত ডেটা প্রসেসিংয়ের সবচেয়ে নমনীয় উপায় এবং এ কারণেই বেশিরভাগ ডেটা সায়েন্টিস্ট Python-কে তাদের প্রধান টুল হিসেবে ব্যবহার করেন। যদি আপনি ডেটা সায়েন্সে সিরিয়াস হন, Python গভীরভাবে শেখা সম্ভবত একটি ভালো ধারণা! ## [পোস্ট-লেকচার কুইজ](https://ff-quizzes.netlify.app/en/ds/quiz/13) -## রিভিউ এবং সেলফ স্টাডি +## রিভিউ এবং স্ব-অধ্যয়ন **বই** * [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) **অনলাইন রিসোর্স** -* অফিসিয়াল [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) টিউটোরিয়াল -* [Pandas Visualization](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)-এর ডকুমেন্টেশন +* অফিসিয়াল [10 মিনিটে Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) টিউটোরিয়াল +* [Pandas Visualization](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) সম্পর্কিত ডকুমেন্টেশন **Python শেখা** -* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) -* [Take your First Steps with Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)-এ লার্নিং পাথ +* [Turtle Graphics এবং Fractals দিয়ে Python মজার উপায়ে শেখা](https://github.com/shwars/pycourse) +* [Python-এ আপনার প্রথম পদক্ষেপ নিন](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)-এ লার্নিং পাথ ## অ্যাসাইনমেন্ট -[উপরের চ্যালেঞ্জগুলোর জন্য আরও বিস্তারিত ডেটা স্টাডি করুন](assignment.md) +[উপরের চ্যালেঞ্জগুলোর জন্য আরও বিস্তারিত ডেটা স্টাডি সম্পন্ন করুন](assignment.md) ## ক্রেডিট diff --git a/translations/br/2-Working-With-Data/07-python/README.md b/translations/br/2-Working-With-Data/07-python/README.md index acb3db86..3eb33fe5 100644 --- a/translations/br/2-Working-With-Data/07-python/README.md +++ b/translations/br/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@ -# Travailler avec les données : Python et la bibliothèque Pandas +# Travailler avec des données : Python et la bibliothèque Pandas | ![ Sketchnote par [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | | Travailler avec Python - _Sketchnote par [@nitya](https://twitter.com/nitya)_ | -[![Vidéo d'introduction](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![Vidéo d'introduction](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.fr.png)](https://youtu.be/dZjWOGbsN4Y) -Bien que les bases de données offrent des moyens très efficaces de stocker et d'interroger des données à l'aide de langages de requête, la méthode la plus flexible pour traiter les données reste d'écrire son propre programme pour les manipuler. Dans de nombreux cas, une requête de base de données serait plus efficace. Cependant, dans certains cas où un traitement de données plus complexe est nécessaire, cela ne peut pas être facilement réalisé avec SQL. +Bien que les bases de données offrent des moyens très efficaces de stocker et d'interroger des données à l'aide de langages de requête, la méthode la plus flexible pour traiter les données reste d'écrire son propre programme pour les manipuler. Dans de nombreux cas, effectuer une requête dans une base de données serait plus efficace. Cependant, dans certains cas où un traitement de données plus complexe est nécessaire, cela ne peut pas être facilement réalisé avec SQL. Le traitement des données peut être programmé dans n'importe quel langage, mais certains langages sont plus adaptés au travail avec les données. Les data scientists préfèrent généralement l'un des langages suivants : -* **[Python](https://www.python.org/)**, un langage de programmation généraliste, souvent considéré comme l'une des meilleures options pour les débutants en raison de sa simplicité. Python dispose de nombreuses bibliothèques supplémentaires qui peuvent vous aider à résoudre de nombreux problèmes pratiques, comme extraire vos données d'une archive ZIP ou convertir une image en niveaux de gris. En plus de la science des données, Python est également souvent utilisé pour le développement web. +* **[Python](https://www.python.org/)**, un langage de programmation généraliste, souvent considéré comme l'une des meilleures options pour les débutants grâce à sa simplicité. Python dispose de nombreuses bibliothèques supplémentaires qui peuvent vous aider à résoudre de nombreux problèmes pratiques, comme extraire vos données d'une archive ZIP ou convertir une image en niveaux de gris. En plus de la science des données, Python est également souvent utilisé pour le développement web. * **[R](https://www.r-project.org/)** est un outil traditionnel développé spécifiquement pour le traitement statistique des données. Il contient également un vaste dépôt de bibliothèques (CRAN), ce qui en fait un bon choix pour le traitement des données. Cependant, R n'est pas un langage de programmation généraliste et est rarement utilisé en dehors du domaine de la science des données. * **[Julia](https://julialang.org/)** est un autre langage développé spécifiquement pour la science des données. Il est conçu pour offrir de meilleures performances que Python, ce qui en fait un excellent outil pour les expérimentations scientifiques. @@ -29,19 +29,19 @@ Dans cette leçon, nous nous concentrerons sur l'utilisation de Python pour un t Les données peuvent se présenter sous de nombreuses formes. Dans cette leçon, nous examinerons trois formes de données : **les données tabulaires**, **le texte** et **les images**. -Nous nous concentrerons sur quelques exemples de traitement de données, au lieu de vous donner un aperçu complet de toutes les bibliothèques associées. Cela vous permettra de comprendre les possibilités principales et de savoir où trouver des solutions à vos problèmes lorsque vous en aurez besoin. +Nous nous concentrerons sur quelques exemples de traitement de données, au lieu de vous donner un aperçu complet de toutes les bibliothèques associées. Cela vous permettra de comprendre les possibilités principales et de savoir où chercher des solutions à vos problèmes lorsque vous en aurez besoin. -> **Le conseil le plus utile** : Lorsque vous devez effectuer une opération sur des données que vous ne savez pas comment réaliser, essayez de chercher sur Internet. [Stackoverflow](https://stackoverflow.com/) contient souvent de nombreux exemples de code utiles en Python pour de nombreuses tâches typiques. +> **Le conseil le plus utile** : Lorsque vous devez effectuer une opération sur des données que vous ne savez pas comment réaliser, essayez de chercher sur Internet. [Stackoverflow](https://stackoverflow.com/) contient généralement de nombreux exemples de code utiles en Python pour de nombreuses tâches typiques. ## [Quiz pré-lecture](https://ff-quizzes.netlify.app/en/ds/quiz/12) ## Données tabulaires et DataFrames -Vous avez déjà rencontré les données tabulaires lorsque nous avons parlé des bases de données relationnelles. Lorsque vous avez beaucoup de données contenues dans de nombreuses tables liées, il est logique d'utiliser SQL pour les manipuler. Cependant, il existe de nombreux cas où nous avons une table de données et où nous devons obtenir une **compréhension** ou des **informations** sur ces données, comme leur distribution, les corrélations entre les valeurs, etc. En science des données, il y a de nombreux cas où nous devons effectuer des transformations des données originales, suivies de visualisations. Ces deux étapes peuvent être facilement réalisées avec Python. +Vous avez déjà rencontré des données tabulaires lorsque nous avons parlé des bases de données relationnelles. Lorsque vous avez beaucoup de données contenues dans de nombreuses tables liées, il est logique d'utiliser SQL pour les manipuler. Cependant, il existe de nombreux cas où nous avons une table de données et où nous devons obtenir une **compréhension** ou des **informations** sur ces données, comme leur distribution, les corrélations entre les valeurs, etc. En science des données, il y a de nombreux cas où nous devons effectuer des transformations des données originales, suivies de visualisations. Ces deux étapes peuvent être facilement réalisées avec Python. -Deux bibliothèques Python sont particulièrement utiles pour travailler avec des données tabulaires : -* **[Pandas](https://pandas.pydata.org/)** permet de manipuler des **DataFrames**, qui sont analogues aux tables relationnelles. Vous pouvez avoir des colonnes nommées et effectuer différentes opérations sur les lignes, les colonnes et les DataFrames en général. -* **[Numpy](https://numpy.org/)** est une bibliothèque pour travailler avec des **tenseurs**, c'est-à-dire des **tableaux** multidimensionnels. Un tableau contient des valeurs du même type sous-jacent, il est plus simple qu'un DataFrame, mais offre davantage d'opérations mathématiques et génère moins de surcharge. +Il existe deux bibliothèques Python particulièrement utiles pour travailler avec des données tabulaires : +* **[Pandas](https://pandas.pydata.org/)** permet de manipuler ce qu'on appelle des **DataFrames**, qui sont analogues aux tables relationnelles. Vous pouvez avoir des colonnes nommées et effectuer différentes opérations sur les lignes, les colonnes et les DataFrames en général. +* **[Numpy](https://numpy.org/)** est une bibliothèque pour travailler avec des **tenseurs**, c'est-à-dire des **tableaux** multidimensionnels. Un tableau contient des valeurs d'un même type sous-jacent, il est plus simple qu'un DataFrame, mais offre davantage d'opérations mathématiques et génère moins de surcharge. Il existe également quelques autres bibliothèques que vous devriez connaître : * **[Matplotlib](https://matplotlib.org/)** est une bibliothèque utilisée pour la visualisation des données et la création de graphiques. @@ -59,9 +59,9 @@ Pandas repose sur quelques concepts de base. ### Series -Une **Series** est une séquence de valeurs, similaire à une liste ou un tableau numpy. La principale différence est qu'une série possède également un **index**, et lorsque nous opérons sur des séries (par exemple, les additionner), l'index est pris en compte. L'index peut être aussi simple qu'un numéro de ligne entier (c'est l'index utilisé par défaut lors de la création d'une série à partir d'une liste ou d'un tableau), ou il peut avoir une structure complexe, comme un intervalle de dates. +Une **Series** est une séquence de valeurs, similaire à une liste ou un tableau numpy. La principale différence est qu'une série possède également un **index**, et lorsque nous effectuons des opérations sur les séries (par exemple, les additionner), l'index est pris en compte. L'index peut être aussi simple qu'un numéro de ligne entier (c'est l'index utilisé par défaut lors de la création d'une série à partir d'une liste ou d'un tableau), ou il peut avoir une structure complexe, comme un intervalle de dates. -> **Note** : Il y a du code introductif sur Pandas dans le notebook associé [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb). Nous ne présentons ici que quelques exemples, mais n'hésitez pas à consulter le notebook complet. +> **Note** : Il y a du code introductif sur Pandas dans le notebook associé [`notebook.ipynb`](notebook.ipynb). Nous ne présentons ici que quelques exemples, mais n'hésitez pas à consulter le notebook complet. Prenons un exemple : nous voulons analyser les ventes de notre stand de glaces. Générons une série de chiffres de ventes (nombre d'articles vendus chaque jour) pour une certaine période : ```python @@ -72,9 +72,9 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![Graphique de séries temporelles](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![Graphique de séries temporelles](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.fr.png) -Supposons maintenant que chaque semaine, nous organisons une fête pour nos amis et que nous prenons 10 packs de glace supplémentaires pour la fête. Nous pouvons créer une autre série, indexée par semaine, pour le démontrer : +Supposons maintenant que chaque semaine, nous organisons une fête pour nos amis et que nous prenons 10 packs de glaces supplémentaires pour la fête. Nous pouvons créer une autre série, indexée par semaine, pour le démontrer : ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) ``` @@ -83,7 +83,7 @@ Lorsque nous additionnons deux séries, nous obtenons le total : total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![Graphique de séries temporelles](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![Graphique de séries temporelles](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.fr.png) > **Note** : Nous n'utilisons pas la syntaxe simple `total_items+additional_items`. Si nous l'avions fait, nous aurions obtenu de nombreuses valeurs `NaN` (*Not a Number*) dans la série résultante. Cela est dû au fait qu'il manque des valeurs pour certains points d'index dans la série `additional_items`, et additionner `NaN` à quoi que ce soit donne `NaN`. Ainsi, nous devons spécifier le paramètre `fill_value` lors de l'addition. @@ -92,11 +92,11 @@ Avec les séries temporelles, nous pouvons également **reéchantillonner** la s monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![Moyennes mensuelles des séries temporelles](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![Moyennes mensuelles des séries temporelles](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.fr.png) ### DataFrame -Un DataFrame est essentiellement une collection de séries ayant le même index. Nous pouvons combiner plusieurs séries ensemble dans un DataFrame : +Un DataFrame est essentiellement une collection de séries ayant le même index. Nous pouvons combiner plusieurs séries pour créer un DataFrame : ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) @@ -126,7 +126,7 @@ Cela nous donnera une table comme celle-ci : | 7 | 8 | very | | 8 | 9 | much | -**Note** : Nous pouvons également obtenir cette disposition de table en transposant la table précédente, par exemple en écrivant : +**Note** : Nous pouvons également obtenir cette disposition de table en transposant la table précédente, par exemple en écrivant ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) ``` @@ -138,13 +138,13 @@ Voici quelques-unes des opérations les plus importantes que nous pouvons effect **Filtrage** de certaines lignes selon des critères. Par exemple, pour ne conserver que les lignes où la colonne `A` est supérieure à 5, nous pouvons écrire `df[df['A']>5]`. -> **Note** : Le fonctionnement du filtrage est le suivant. L'expression `df['A']<5` renvoie une série booléenne, qui indique si l'expression est `True` ou `False` pour chaque élément de la série originale `df['A']`. Lorsqu'une série booléenne est utilisée comme index, elle renvoie un sous-ensemble de lignes dans le DataFrame. Ainsi, il n'est pas possible d'utiliser une expression booléenne Python arbitraire, par exemple, écrire `df[df['A']>5 and df['A']<7]` serait incorrect. À la place, vous devez utiliser l'opération spéciale `&` sur les séries booléennes, en écrivant `df[(df['A']>5) & (df['A']<7)]` (*les parenthèses sont importantes ici*). +> **Note** : Le fonctionnement du filtrage est le suivant. L'expression `df['A']<5` renvoie une série booléenne, qui indique si l'expression est `True` ou `False` pour chaque élément de la série originale `df['A']`. Lorsqu'une série booléenne est utilisée comme index, elle renvoie un sous-ensemble de lignes dans le DataFrame. Ainsi, il n'est pas possible d'utiliser une expression booléenne Python arbitraire, par exemple, écrire `df[df['A']>5 and df['A']<7]` serait incorrect. À la place, vous devez utiliser l'opérateur spécial `&` sur les séries booléennes, en écrivant `df[(df['A']>5) & (df['A']<7)]` (*les parenthèses sont importantes ici*). **Création de nouvelles colonnes calculables**. Nous pouvons facilement créer de nouvelles colonnes calculables pour notre DataFrame en utilisant une expression intuitive comme celle-ci : ```python df['DivA'] = df['A']-df['A'].mean() ``` -Cet exemple calcule l'écart de `A` par rapport à sa valeur moyenne. Ce qui se passe réellement ici, c'est que nous calculons une série, puis nous assignons cette série au côté gauche, créant une autre colonne. Ainsi, nous ne pouvons pas utiliser d'opérations incompatibles avec les séries, par exemple, le code ci-dessous est incorrect : +Cet exemple calcule la divergence de `A` par rapport à sa valeur moyenne. Ce qui se passe réellement ici, c'est que nous calculons une série, puis nous l'assignons au côté gauche, créant une autre colonne. Ainsi, nous ne pouvons pas utiliser d'opérations incompatibles avec les séries, par exemple, le code ci-dessous est incorrect : ```python # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result @@ -177,11 +177,11 @@ Après les opérations ci-dessus, nous obtiendrons le DataFrame suivant : df.iloc[:5] ``` -**Regroupement** est souvent utilisé pour obtenir un résultat similaire aux *tableaux croisés dynamiques* dans Excel. Supposons que nous voulons calculer la valeur moyenne de la colonne `A` pour chaque nombre donné de `LenB`. Nous pouvons alors regrouper notre DataFrame par `LenB` et appeler `mean` : +**Regroupement** est souvent utilisé pour obtenir un résultat similaire aux *tableaux croisés dynamiques* dans Excel. Supposons que nous souhaitons calculer la valeur moyenne de la colonne `A` pour chaque nombre donné de `LenB`. Nous pouvons alors regrouper notre DataFrame par `LenB` et appeler `mean` : ```python -df.groupby(by='LenB').mean() +df.groupby(by='LenB')[['A','DivA']].mean() ``` -Si nous devons calculer la moyenne et le nombre d'éléments dans le groupe, nous pouvons utiliser la fonction plus complexe `aggregate` : +Si nous devons calculer la moyenne et le nombre d'éléments dans le groupe, nous pouvons utiliser la fonction `aggregate` plus complexe : ```python df.groupby(by='LenB') \ .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ @@ -206,55 +206,55 @@ Nous verrons plus d'exemples de chargement de données, y compris leur récupér ### Impression et Visualisation -Un Data Scientist doit souvent explorer les données, il est donc important de pouvoir les visualiser. Lorsque le DataFrame est volumineux, nous voulons souvent simplement vérifier que tout fonctionne correctement en affichant les premières lignes. Cela peut être fait en appelant `df.head()`. Si vous l'exécutez depuis Jupyter Notebook, cela affichera le DataFrame sous une forme tabulaire agréable. +Un Data Scientist doit souvent explorer les données, il est donc important de pouvoir les visualiser. Lorsque le DataFrame est volumineux, il est souvent utile de vérifier que tout fonctionne correctement en affichant les premières lignes. Cela peut être fait en appelant `df.head()`. Si vous l'exécutez depuis Jupyter Notebook, cela affichera le DataFrame sous une forme tabulaire agréable. Nous avons également vu l'utilisation de la fonction `plot` pour visualiser certaines colonnes. Bien que `plot` soit très utile pour de nombreuses tâches et prenne en charge différents types de graphiques via le paramètre `kind=`, vous pouvez toujours utiliser la bibliothèque `matplotlib` brute pour tracer quelque chose de plus complexe. Nous couvrirons la visualisation des données en détail dans des leçons de cours séparées. -Cette vue d'ensemble couvre les concepts les plus importants de Pandas, cependant, la bibliothèque est très riche, et il n'y a pas de limite à ce que vous pouvez faire avec elle ! Appliquons maintenant ces connaissances pour résoudre un problème spécifique. +Cette vue d'ensemble couvre les concepts les plus importants de Pandas, mais la bibliothèque est très riche, et il n'y a pas de limite à ce que vous pouvez faire avec elle ! Appliquons maintenant ces connaissances pour résoudre un problème spécifique. ## 🚀 Challenge 1 : Analyser la propagation du COVID Le premier problème sur lequel nous allons nous concentrer est la modélisation de la propagation de l'épidémie de COVID-19. Pour ce faire, nous utiliserons les données sur le nombre de personnes infectées dans différents pays, fournies par le [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) de l'[Université Johns Hopkins](https://jhu.edu/). Le jeu de données est disponible dans [ce dépôt GitHub](https://github.com/CSSEGISandData/COVID-19). -Puisque nous voulons démontrer comment traiter les données, nous vous invitons à ouvrir [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) et à le lire de haut en bas. Vous pouvez également exécuter les cellules et relever certains défis que nous avons laissés pour vous à la fin. +Puisque nous voulons démontrer comment traiter les données, nous vous invitons à ouvrir [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) et à le lire de haut en bas. Vous pouvez également exécuter les cellules et relever certains défis que nous avons laissés pour vous à la fin. -![Propagation du COVID](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![Propagation du COVID](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.fr.png) > Si vous ne savez pas comment exécuter du code dans Jupyter Notebook, consultez [cet article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). ## Travailler avec des données non structurées -Bien que les données se présentent très souvent sous forme tabulaire, dans certains cas, nous devons traiter des données moins structurées, par exemple du texte ou des images. Dans ce cas, pour appliquer les techniques de traitement des données que nous avons vues ci-dessus, nous devons **extraire** des données structurées. Voici quelques exemples : +Bien que les données soient souvent sous forme tabulaire, dans certains cas, nous devons traiter des données moins structurées, comme du texte ou des images. Dans ce cas, pour appliquer les techniques de traitement des données que nous avons vues précédemment, nous devons **extraire** des données structurées. Voici quelques exemples : * Extraire des mots-clés d'un texte et voir à quelle fréquence ces mots-clés apparaissent * Utiliser des réseaux neuronaux pour extraire des informations sur les objets dans une image -* Obtenir des informations sur les émotions des personnes à partir d'un flux vidéo de caméra +* Obtenir des informations sur les émotions des personnes à partir d'un flux vidéo ## 🚀 Challenge 2 : Analyser les articles sur le COVID -Dans ce défi, nous continuerons avec le sujet de la pandémie de COVID et nous concentrerons sur le traitement des articles scientifiques sur le sujet. Il existe [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) avec plus de 7000 articles (au moment de la rédaction) sur le COVID, disponibles avec des métadonnées et des résumés (et pour environ la moitié d'entre eux, le texte complet est également fourni). +Dans ce défi, nous continuerons avec le sujet de la pandémie de COVID et nous concentrerons sur le traitement des articles scientifiques sur le sujet. Il existe un [jeu de données CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) contenant plus de 7000 articles (au moment de la rédaction) sur le COVID, disponibles avec des métadonnées et des résumés (et pour environ la moitié d'entre eux, le texte complet est également fourni). -Un exemple complet d'analyse de ce jeu de données en utilisant le service cognitif [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) est décrit [dans cet article de blog](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Nous discuterons d'une version simplifiée de cette analyse. +Un exemple complet d'analyse de ce jeu de données en utilisant le service cognitif [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) est décrit [dans ce billet de blog](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Nous discuterons d'une version simplifiée de cette analyse. > **NOTE** : Nous ne fournissons pas une copie du jeu de données dans ce dépôt. Vous devrez peut-être d'abord télécharger le fichier [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) depuis [ce jeu de données sur Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Une inscription sur Kaggle peut être requise. Vous pouvez également télécharger le jeu de données sans inscription [ici](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), mais cela inclura tous les textes complets en plus du fichier de métadonnées. -Ouvrez [`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) et lisez-le de haut en bas. Vous pouvez également exécuter les cellules et relever certains défis que nous avons laissés pour vous à la fin. +Ouvrez [`notebook-papers.ipynb`](notebook-papers.ipynb) et lisez-le de haut en bas. Vous pouvez également exécuter les cellules et relever certains défis que nous avons laissés pour vous à la fin. -![Traitement médical du COVID](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![Traitement médical du COVID](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.fr.png) ## Traitement des données d'image -Récemment, des modèles d'IA très puissants ont été développés, permettant de comprendre les images. De nombreuses tâches peuvent être résolues en utilisant des réseaux neuronaux pré-entraînés ou des services cloud. Voici quelques exemples : +Récemment, des modèles d'IA très puissants ont été développés pour comprendre les images. De nombreuses tâches peuvent être résolues en utilisant des réseaux neuronaux pré-entraînés ou des services cloud. Voici quelques exemples : -* **Classification d'images**, qui peut vous aider à catégoriser une image dans l'une des classes prédéfinies. Vous pouvez facilement entraîner vos propres classificateurs d'images en utilisant des services tels que [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) -* **Détection d'objets** pour détecter différents objets dans une image. Des services tels que [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) peuvent détecter un certain nombre d'objets courants, et vous pouvez entraîner un modèle [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) pour détecter des objets spécifiques d'intérêt. +* **Classification d'images**, qui peut vous aider à catégoriser une image dans l'une des classes prédéfinies. Vous pouvez facilement entraîner vos propres classificateurs d'images en utilisant des services comme [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) +* **Détection d'objets** pour détecter différents objets dans une image. Des services comme [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) peuvent détecter un certain nombre d'objets courants, et vous pouvez entraîner un modèle [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) pour détecter des objets spécifiques d'intérêt. * **Détection de visages**, y compris l'âge, le genre et les émotions. Cela peut être fait via [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum). Tous ces services cloud peuvent être appelés en utilisant les [SDK Python](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), et peuvent donc être facilement intégrés dans votre flux de travail d'exploration de données. Voici quelques exemples d'exploration de données à partir de sources d'images : -* Dans l'article de blog [Comment apprendre la science des données sans coder](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/), nous explorons les photos Instagram, en essayant de comprendre ce qui pousse les gens à donner plus de "likes" à une photo. Nous extrayons d'abord autant d'informations que possible des images en utilisant [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), puis nous utilisons [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) pour construire un modèle interprétable. -* Dans l'[atelier sur les études faciales](https://github.com/CloudAdvocacy/FaceStudies), nous utilisons [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) pour extraire les émotions des personnes sur des photographies d'événements, afin d'essayer de comprendre ce qui rend les gens heureux. +* Dans le billet de blog [Comment apprendre la science des données sans coder](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/), nous explorons les photos Instagram, en essayant de comprendre ce qui pousse les gens à donner plus de "likes" à une photo. Nous extrayons d'abord autant d'informations que possible des images en utilisant [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), puis nous utilisons [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) pour construire un modèle interprétable. +* Dans l'[atelier sur les études faciales](https://github.com/CloudAdvocacy/FaceStudies), nous utilisons [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) pour extraire les émotions des personnes sur des photographies d'événements, afin de tenter de comprendre ce qui rend les gens heureux. ## Conclusion @@ -286,4 +286,4 @@ Cette leçon a été rédigée avec ♥️ par [Dmitry Soshnikov](http://soshnik --- **Avertissement** : -Ce document a été traduit à l'aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, il est recommandé de faire appel à une traduction humaine professionnelle. Nous déclinons toute responsabilité en cas de malentendus ou d'interprétations erronées résultant de l'utilisation de cette traduction. \ No newline at end of file +Ce document a été traduit à l'aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous déclinons toute responsabilité en cas de malentendus ou d'interprétations erronées résultant de l'utilisation de cette traduction. \ No newline at end of file diff --git a/translations/he/2-Working-With-Data/07-python/README.md b/translations/he/2-Working-With-Data/07-python/README.md index 5d8fa7f1..576432b4 100644 --- a/translations/he/2-Working-With-Data/07-python/README.md +++ b/translations/he/2-Working-With-Data/07-python/README.md @@ -1,53 +1,53 @@ -# עבודה עם נתונים: פייתון וספריית Pandas +# עבודה עם נתונים: Python וספריית Pandas -| ![ איור מאת [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| ![ סקיצה מאת [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | -| עבודה עם פייתון - _איור מאת [@nitya](https://twitter.com/nitya)_ | +| עבודה עם Python - _סקיצה מאת [@nitya](https://twitter.com/nitya)_ | -[![סרטון מבוא](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![סרטון מבוא](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.he.png)](https://youtu.be/dZjWOGbsN4Y) -בעוד שמסדי נתונים מציעים דרכים יעילות מאוד לאחסן נתונים ולשאול אותם באמצעות שפות שאילתה, הדרך הגמישה ביותר לעיבוד נתונים היא כתיבת תוכנית משלך כדי לעבד את הנתונים. במקרים רבים, שאילתה במסד נתונים תהיה דרך יעילה יותר. עם זאת, במקרים שבהם נדרש עיבוד נתונים מורכב יותר, לא ניתן לבצע זאת בקלות באמצעות SQL. -עיבוד נתונים ניתן לתכנות בכל שפת תכנות, אך ישנן שפות מסוימות שהן ברמה גבוהה יותר בכל הנוגע לעבודה עם נתונים. מדעני נתונים בדרך כלל מעדיפים אחת מהשפות הבאות: +בעוד שמאגרי נתונים מציעים דרכים יעילות מאוד לאחסן נתונים ולבצע שאילתות באמצעות שפות שאילתה, הדרך הגמישה ביותר לעיבוד נתונים היא כתיבת תוכנית משלך כדי לתפעל נתונים. במקרים רבים, ביצוע שאילתה במאגר נתונים יהיה דרך יעילה יותר. עם זאת, במקרים שבהם נדרש עיבוד נתונים מורכב יותר, לא ניתן לבצע זאת בקלות באמצעות SQL. +ניתן לתכנת עיבוד נתונים בכל שפת תכנות, אך ישנן שפות מסוימות שהן ברמה גבוהה יותר בכל הנוגע לעבודה עם נתונים. מדעני נתונים בדרך כלל מעדיפים אחת מהשפות הבאות: -* **[Python](https://www.python.org/)**, שפת תכנות כללית, שנחשבת לעיתים קרובות לאחת האפשרויות הטובות ביותר למתחילים בשל הפשטות שלה. לפייתון יש הרבה ספריות נוספות שיכולות לעזור לך לפתור בעיות מעשיות רבות, כמו חילוץ נתונים מארכיון ZIP או המרת תמונה לגווני אפור. בנוסף למדעי הנתונים, פייתון משמשת לעיתים קרובות גם לפיתוח אתרים. +* **[Python](https://www.python.org/)**, שפת תכנות כללית, שנחשבת לעיתים קרובות כאחת האפשרויות הטובות ביותר למתחילים בשל הפשטות שלה. ל-Python יש הרבה ספריות נוספות שיכולות לעזור לך לפתור בעיות מעשיות רבות, כמו חילוץ נתונים מארכיון ZIP או המרת תמונה לגווני אפור. בנוסף למדעי הנתונים, Python משמשת גם לעיתים קרובות לפיתוח אתרים. * **[R](https://www.r-project.org/)** היא כלי מסורתי שפותח עם עיבוד נתונים סטטיסטיים בראש. היא מכילה גם מאגר גדול של ספריות (CRAN), מה שהופך אותה לבחירה טובה לעיבוד נתונים. עם זאת, R אינה שפת תכנות כללית, והיא משמשת לעיתים רחוקות מחוץ לתחום מדעי הנתונים. -* **[Julia](https://julialang.org/)** היא שפה נוספת שפותחה במיוחד עבור מדעי הנתונים. היא נועדה לספק ביצועים טובים יותר מפייתון, מה שהופך אותה לכלי מצוין לניסויים מדעיים. +* **[Julia](https://julialang.org/)** היא שפה נוספת שפותחה במיוחד עבור מדעי הנתונים. היא נועדה לספק ביצועים טובים יותר מ-Python, מה שהופך אותה לכלי מצוין לניסויים מדעיים. -בשיעור זה נתמקד בשימוש בפייתון לעיבוד נתונים פשוט. נניח היכרות בסיסית עם השפה. אם ברצונך להעמיק בפייתון, תוכל לעיין באחד מהמשאבים הבאים: +בשיעור זה, נתמקד בשימוש ב-Python לעיבוד נתונים פשוט. נניח היכרות בסיסית עם השפה. אם ברצונך סיור מעמיק יותר ב-Python, תוכל לעיין באחד מהמשאבים הבאים: -* [למד פייתון בדרך מהנה עם גרפיקת צב ופרקטלים](https://github.com/shwars/pycourse) - קורס מבוא מהיר מבוסס GitHub לתכנות בפייתון -* [עשה את הצעדים הראשונים שלך עם פייתון](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) מסלול למידה ב-[Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) +* [למד Python בדרך מהנה עם גרפיקה של צב ופרקטלים](https://github.com/shwars/pycourse) - קורס מבוא מהיר ל-Python מבוסס GitHub +* [עשה את הצעדים הראשונים שלך עם Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) מסלול למידה ב-[Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) -נתונים יכולים להגיע בצורות רבות. בשיעור זה נתמקד בשלוש צורות של נתונים - **נתונים טבלאיים**, **טקסט** ו**תמונות**. +נתונים יכולים להגיע בצורות רבות. בשיעור זה, נתמקד בשלוש צורות של נתונים - **נתונים טבלאיים**, **טקסט** ו**תמונות**. -נתמקד בכמה דוגמאות לעיבוד נתונים, במקום לתת סקירה מלאה של כל הספריות הקשורות. זה יאפשר לך להבין את הרעיון המרכזי של מה אפשרי, ולהשאיר אותך עם הבנה היכן למצוא פתרונות לבעיות שלך כשאתה זקוק להם. +נתמקד בכמה דוגמאות לעיבוד נתונים, במקום לתת לך סקירה מלאה של כל הספריות הקשורות. זה יאפשר לך להבין את הרעיון המרכזי של מה אפשרי, ולהשאיר אותך עם הבנה היכן למצוא פתרונות לבעיות שלך כשאתה זקוק להם. -> **העצה הכי שימושית**. כשאתה צריך לבצע פעולה מסוימת על נתונים ואינך יודע איך לעשות זאת, נסה לחפש באינטרנט. [Stackoverflow](https://stackoverflow.com/) מכיל בדרך כלל הרבה דוגמאות קוד שימושיות בפייתון עבור משימות טיפוסיות רבות. +> **העצה הכי שימושית**. כשאתה צריך לבצע פעולה מסוימת על נתונים שאינך יודע כיצד לבצע, נסה לחפש אותה באינטרנט. [Stackoverflow](https://stackoverflow.com/) בדרך כלל מכיל הרבה דוגמאות קוד שימושיות ב-Python עבור משימות טיפוסיות רבות. ## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ds/quiz/12) ## נתונים טבלאיים ו-Dataframes -כבר פגשת נתונים טבלאיים כשדיברנו על מסדי נתונים יחסיים. כשיש לך הרבה נתונים, והם נמצאים בטבלאות רבות ומקושרות, בהחלט יש היגיון להשתמש ב-SQL לעבודה איתם. עם זאת, ישנם מקרים רבים שבהם יש לנו טבלה של נתונים, ואנו צריכים לקבל **הבנה** או **תובנות** על נתונים אלו, כמו התפלגות, מתאם בין ערכים, וכו'. במדעי הנתונים, ישנם מקרים רבים שבהם אנו צריכים לבצע כמה טרנספורמציות של הנתונים המקוריים, ולאחר מכן ויזואליזציה. שני השלבים הללו יכולים להתבצע בקלות באמצעות פייתון. +כבר פגשת נתונים טבלאיים כשדיברנו על מאגרי נתונים יחסיים. כשיש לך הרבה נתונים, והם נמצאים בטבלאות רבות ומקושרות, בהחלט יש היגיון להשתמש ב-SQL לעבודה איתם. עם זאת, ישנם מקרים רבים שבהם יש לנו טבלה של נתונים, ואנו צריכים לקבל **הבנה** או **תובנות** על הנתונים הללו, כמו התפלגות, קורלציה בין ערכים, וכו'. במדעי הנתונים, ישנם מקרים רבים שבהם אנו צריכים לבצע כמה טרנספורמציות של הנתונים המקוריים, ולאחר מכן ויזואליזציה. שני השלבים הללו יכולים להתבצע בקלות באמצעות Python. -ישנן שתי ספריות שימושיות ביותר בפייתון שיכולות לעזור לך להתמודד עם נתונים טבלאיים: -* **[Pandas](https://pandas.pydata.org/)** מאפשרת לך לעבוד עם **Dataframes**, שהם אנלוגיים לטבלאות יחסיות. ניתן להגדיר עמודות עם שמות, ולבצע פעולות שונות על שורות, עמודות ו-Dataframes באופן כללי. -* **[Numpy](https://numpy.org/)** היא ספרייה לעבודה עם **tensors**, כלומר **מערכים** רב-ממדיים. מערך מכיל ערכים מסוג בסיסי אחיד, והוא פשוט יותר מ-Dataframe, אך מציע יותר פעולות מתמטיות ויוצר פחות עומס. +ישנן שתי ספריות שימושיות ביותר ב-Python שיכולות לעזור לך להתמודד עם נתונים טבלאיים: +* **[Pandas](https://pandas.pydata.org/)** מאפשרת לך לתפעל **Dataframes**, שהם אנלוגיים לטבלאות יחסיות. ניתן להגדיר עמודות עם שמות, ולבצע פעולות שונות על שורות, עמודות ו-Dataframes באופן כללי. +* **[Numpy](https://numpy.org/)** היא ספרייה לעבודה עם **tensors**, כלומר **מערכים** רב-ממדיים. מערך מכיל ערכים מסוג בסיסי זהה, והוא פשוט יותר מ-Dataframe, אך מציע יותר פעולות מתמטיות ויוצר פחות עומס. ישנן גם כמה ספריות נוספות שכדאי להכיר: -* **[Matplotlib](https://matplotlib.org/)** היא ספרייה המשמשת לוויזואליזציה של נתונים ושרטוט גרפים -* **[SciPy](https://www.scipy.org/)** היא ספרייה עם פונקציות מדעיות נוספות. כבר נתקלנו בספרייה זו כשדיברנו על הסתברות וסטטיסטיקה +* **[Matplotlib](https://matplotlib.org/)** היא ספרייה המשמשת לויזואליזציה של נתונים ושרטוט גרפים +* **[SciPy](https://www.scipy.org/)** היא ספרייה עם כמה פונקציות מדעיות נוספות. כבר נתקלנו בספרייה זו כשדיברנו על הסתברות וסטטיסטיקה -הנה קטע קוד שתשתמש בו בדרך כלל לייבוא הספריות הללו בתחילת תוכנית פייתון: +הנה קטע קוד שתשתמש בו בדרך כלל כדי לייבא את הספריות הללו בתחילת תוכנית Python שלך: ```python import numpy as np import pandas as pd @@ -57,13 +57,13 @@ from scipy import ... # you need to specify exact sub-packages that you need Pandas מתמקדת בכמה מושגים בסיסיים. -### Series +### Series -**Series** היא רצף של ערכים, בדומה לרשימה או מערך numpy. ההבדל העיקרי הוא של-Series יש גם **אינדקס**, וכשמבצעים פעולות על Series (למשל, חיבור), האינדקס נלקח בחשבון. האינדקס יכול להיות פשוט כמו מספר שורה שלם (זהו האינדקס המשמש כברירת מחדל כשיוצרים Series מרשימה או מערך), או שהוא יכול להיות בעל מבנה מורכב, כמו טווח תאריכים. +**Series** היא רצף של ערכים, בדומה לרשימה או מערך numpy. ההבדל העיקרי הוא ש-Series מכילה גם **אינדקס**, וכשאנחנו מבצעים פעולות על Series (למשל, מוסיפים אותם), האינדקס נלקח בחשבון. האינדקס יכול להיות פשוט כמו מספר שורה שלם (זהו האינדקס המשמש כברירת מחדל בעת יצירת Series מרשימה או מערך), או שהוא יכול להיות בעל מבנה מורכב, כמו מרווחי תאריכים. -> **הערה**: יש קוד מבואי ל-Pandas במחברת המצורפת [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb). אנו מציינים כאן רק חלק מהדוגמאות, ואתם בהחלט מוזמנים לבדוק את המחברת המלאה. +> **הערה**: יש קוד מבוא ל-Pandas במחברת המצורפת [`notebook.ipynb`](notebook.ipynb). אנו מציינים כאן רק כמה דוגמאות, ואתם בהחלט מוזמנים לבדוק את המחברת המלאה. -נניח לדוגמה: אנו רוצים לנתח מכירות של דוכן גלידה שלנו. בואו ניצור סדרה של מספרי מכירות (מספר הפריטים שנמכרו בכל יום) לתקופת זמן מסוימת: +לדוגמה: אנו רוצים לנתח מכירות של חנות הגלידה שלנו. בואו ניצור סדרת מספרי מכירות (מספר הפריטים שנמכרו בכל יום) עבור תקופת זמן מסוימת: ```python start_date = "Jan 1, 2020" @@ -73,47 +73,47 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![גרף סדרת זמן](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![גרף סדרת זמן](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.he.png) -עכשיו נניח שבכל שבוע אנו מארגנים מסיבה לחברים, ולוקחים 10 חבילות גלידה נוספות למסיבה. נוכל ליצור סדרה נוספת, שמאונדקסת לפי שבוע, כדי להדגים זאת: +עכשיו נניח שבכל שבוע אנו מארגנים מסיבה לחברים, ולוקחים 10 חבילות נוספות של גלידה למסיבה. נוכל ליצור סדרה נוספת, עם אינדקס לפי שבוע, כדי להדגים זאת: ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) ``` -כשנחבר את שתי הסדרות יחד, נקבל את המספר הכולל: +כשאנו מוסיפים שתי סדרות יחד, אנו מקבלים את המספר הכולל: ```python total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![גרף סדרת זמן](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![גרף סדרת זמן](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.he.png) -> **הערה** שאיננו משתמשים בתחביר הפשוט `total_items+additional_items`. אם היינו עושים זאת, היינו מקבלים הרבה ערכי `NaN` (*לא מספר*) בסדרה המתקבלת. זאת מכיוון שיש ערכים חסרים עבור חלק מנקודות האינדקס בסדרה `additional_items`, וחיבור `NaN` לכל דבר אחר נותן `NaN`. לכן עלינו לציין את הפרמטר `fill_value` במהלך החיבור. +> **הערה** שאנו לא משתמשים בתחביר הפשוט `total_items+additional_items`. אם היינו עושים זאת, היינו מקבלים הרבה ערכי `NaN` (*Not a Number*) בסדרה המתקבלת. זאת מכיוון שיש ערכים חסרים עבור חלק מנקודות האינדקס בסדרת `additional_items`, והוספת `NaN` לכל דבר תוצאה ב-`NaN`. לכן עלינו לציין את הפרמטר `fill_value` במהלך ההוספה. -עם סדרות זמן, ניתן גם **לדגום מחדש** את הסדרה עם מרווחי זמן שונים. לדוגמה, נניח שאנו רוצים לחשב את ממוצע נפח המכירות חודשי. נוכל להשתמש בקוד הבא: +עם סדרות זמן, אנו יכולים גם **לדגום מחדש** את הסדרה עם מרווחי זמן שונים. לדוגמה, נניח שאנו רוצים לחשב את ממוצע נפח המכירות חודשי. נוכל להשתמש בקוד הבא: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![ממוצעים חודשיים של סדרת זמן](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![ממוצעים חודשיים של סדרת זמן](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.he.png) ### DataFrame -DataFrame הוא למעשה אוסף של סדרות עם אותו אינדקס. נוכל לשלב כמה סדרות יחד ל-DataFrame: +DataFrame הוא למעשה אוסף של סדרות עם אותו אינדקס. אנו יכולים לשלב כמה סדרות יחד ליצירת DataFrame: ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) df = pd.DataFrame([a,b]) ``` -זה ייצור טבלה אופקית כזו: +זה ייצור טבלה אופקית כמו זו: | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | | --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | 1 | I | like | to | use | Python | and | Pandas | very | much | -נוכל גם להשתמש בסדרות כעמודות, ולציין שמות עמודות באמצעות מילון: +אנו יכולים גם להשתמש בסדרות כעמודות, ולציין שמות עמודות באמצעות מילון: ```python df = pd.DataFrame({ 'A' : a, 'B' : b }) ``` -זה ייתן לנו טבלה כזו: +זה ייתן לנו טבלה כמו זו: | | A | B | | --- | --- | ------ | @@ -127,32 +127,32 @@ df = pd.DataFrame({ 'A' : a, 'B' : b }) | 7 | 8 | very | | 8 | 9 | much | -**הערה** שנוכל גם לקבל את פריסת הטבלה הזו על ידי טרנספוזיציה של הטבלה הקודמת, למשל על ידי כתיבת +**הערה** שאנו יכולים גם לקבל את פריסת הטבלה הזו על ידי טרנספוזיציה של הטבלה הקודמת, למשל על ידי כתיבה ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) ``` -כאן `.T` מציין את פעולת הטרנספוזיציה של ה-DataFrame, כלומר שינוי שורות ועמודות, ופעולת `rename` מאפשרת לנו לשנות את שמות העמודות כך שיתאימו לדוגמה הקודמת. +כאן `.T` מתייחס לפעולת הטרנספוזיציה של ה-DataFrame, כלומר שינוי שורות ועמודות, ופעולת `rename` מאפשרת לנו לשנות את שמות העמודות כך שיתאימו לדוגמה הקודמת. -הנה כמה מהפעולות החשובות ביותר שנוכל לבצע על DataFrames: +הנה כמה מהפעולות החשובות ביותר שניתן לבצע על DataFrames: -**בחירת עמודות**. נוכל לבחור עמודות בודדות על ידי כתיבת `df['A']` - פעולה זו מחזירה סדרה. נוכל גם לבחור תת-קבוצה של עמודות ל-DataFrame אחר על ידי כתיבת `df[['B','A']]` - זה מחזיר DataFrame נוסף. +**בחירת עמודות**. ניתן לבחור עמודות בודדות על ידי כתיבה `df['A']` - פעולה זו מחזירה סדרה. ניתן גם לבחור תת-קבוצה של עמודות ל-DataFrame אחר על ידי כתיבה `df[['B','A']]` - פעולה זו מחזירה DataFrame נוסף. -**סינון** שורות מסוימות לפי קריטריונים. לדוגמה, כדי להשאיר רק שורות שבהן העמודה `A` גדולה מ-5, נוכל לכתוב `df[df['A']>5]`. +**סינון** שורות מסוימות לפי קריטריונים. לדוגמה, כדי להשאיר רק שורות עם עמודה `A` גדולה מ-5, ניתן לכתוב `df[df['A']>5]`. -> **הערה**: הדרך שבה סינון עובד היא הבאה. הביטוי `df['A']<5` מחזיר סדרת בוליאנים, שמציינת האם הביטוי `True` או `False` עבור כל אלמנט בסדרה המקורית `df['A']`. כשסדרת בוליאנים משמשת כאינדקס, היא מחזירה תת-קבוצה של שורות ב-DataFrame. לכן לא ניתן להשתמש בביטוי בוליאני כללי של פייתון, לדוגמה, כתיבת `df[df['A']>5 and df['A']<7]` תהיה שגויה. במקום זאת, עליך להשתמש בפעולת `&` מיוחדת על סדרות בוליאניות, ולכתוב `df[(df['A']>5) & (df['A']<7)]` (*סוגריים חשובים כאן*). +> **הערה**: הדרך שבה סינון עובד היא כדלקמן. הביטוי `df['A']<5` מחזיר סדרה בוליאנית, שמציינת האם הביטוי הוא `True` או `False` עבור כל אלמנט בסדרה המקורית `df['A']`. כאשר סדרה בוליאנית משמשת כאינדקס, היא מחזירה תת-קבוצה של שורות ב-DataFrame. לכן, לא ניתן להשתמש בביטוי בוליאני שרירותי של Python, לדוגמה, כתיבה `df[df['A']>5 and df['A']<7]` תהיה שגויה. במקום זאת, יש להשתמש בפעולת `&` מיוחדת על סדרות בוליאניות, ולכתוב `df[(df['A']>5) & (df['A']<7)]` (*סוגריים חשובים כאן*). -**יצירת עמודות מחושבות חדשות**. נוכל בקלות ליצור עמודות מחושבות חדשות עבור ה-DataFrame שלנו על ידי שימוש בביטוי אינטואיטיבי כמו זה: +**יצירת עמודות חדשות לחישוב**. ניתן ליצור בקלות עמודות חדשות לחישוב עבור ה-DataFrame שלנו באמצעות ביטוי אינטואיטיבי כמו זה: ```python df['DivA'] = df['A']-df['A'].mean() ``` -דוגמה זו מחשבת את הסטייה של A מערך הממוצע שלה. מה שקורה כאן בפועל הוא שאנו מחשבים סדרה, ואז משייכים סדרה זו לצד השמאלי, ויוצרים עמודה חדשה. לכן, לא נוכל להשתמש בפעולות שאינן תואמות לסדרות, לדוגמה, הקוד הבא שגוי: +דוגמה זו מחשבת את הסטייה של A מערך הממוצע שלה. מה שקורה בפועל כאן הוא שאנו מחשבים סדרה, ואז מקצים את הסדרה הזו לצד השמאלי, ויוצרים עמודה נוספת. לכן, לא ניתן להשתמש בפעולות שאינן תואמות לסדרות, לדוגמה, הקוד הבא שגוי: ```python # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result ``` -הדוגמה האחרונה, למרות שהיא נכונה תחבירית, נותנת לנו תוצאה שגויה, מכיוון שהיא משייכת את אורך הסדרה `B` לכל הערכים בעמודה, ולא את אורך האלמנטים הבודדים כפי שהתכוונו. +הדוגמה האחרונה, למרות שהיא נכונה מבחינה תחבירית, נותנת לנו תוצאה שגויה, מכיוון שהיא מקצה את אורך הסדרה `B` לכל הערכים בעמודה, ולא את אורך האלמנטים הבודדים כפי שהתכוונו. -אם אנו צריכים לחשב ביטויים מורכבים כאלה, נוכל להשתמש בפונקציית `apply`. הדוגמה האחרונה יכולה להיכתב כך: +אם אנו צריכים לחשב ביטויים מורכבים כאלה, ניתן להשתמש בפונקציית `apply`. הדוגמה האחרונה יכולה להיכתב כך: ```python df['LenB'] = df['B'].apply(lambda x : len(x)) # or @@ -178,11 +178,11 @@ df['LenB'] = df['B'].apply(len) df.iloc[:5] ``` -**קיבוץ** משמש לעיתים קרובות לקבלת תוצאה דומה ל-*טבלאות ציר* ב-Excel. נניח שאנו רוצים לחשב את הערך הממוצע של העמודה `A` עבור כל מספר נתון של `LenB`. אז נוכל לקבץ את ה-DataFrame שלנו לפי `LenB`, ולקרוא ל-`mean`: +**קיבוץ** משמש לעיתים קרובות לקבלת תוצאה דומה ל-*טבלאות ציר* ב-Excel. נניח שאנו רוצים לחשב את ערך הממוצע של עמודה `A` עבור כל מספר נתון של `LenB`. אז נוכל לקבץ את ה-DataFrame שלנו לפי `LenB`, ולקרוא ל-`mean`: ```python -df.groupby(by='LenB').mean() +df.groupby(by='LenB')[['A','DivA']].mean() ``` -אם אנו צריכים לחשב ממוצע ומספר אלמנטים בקבוצה, נוכל להשתמש בפונקציית `aggregate` מורכבת יותר: +אם אנו צריכים לחשב ממוצע ומספר האלמנטים בקבוצה, אז נוכל להשתמש בפונקציית `aggregate` מורכבת יותר: ```python df.groupby(by='LenB') \ .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ @@ -199,86 +199,86 @@ df.groupby(by='LenB') \ | 6 | 2 | 6.000000 | ### קבלת נתונים -ראינו כמה קל לבנות Series ו-DataFrames מאובייקטים של פייתון. עם זאת, נתונים בדרך כלל מגיעים בצורה של קובץ טקסט או טבלת Excel. למרבה המזל, Pandas מציעה דרך פשוטה לטעון נתונים מהדיסק. לדוגמה, קריאת קובץ CSV פשוטה כמו זו: +ראינו כמה קל ליצור Series ו-DataFrames מאובייקטים של Python. עם זאת, נתונים בדרך כלל מגיעים בצורה של קובץ טקסט או טבלת Excel. למרבה המזל, Pandas מציעה דרך פשוטה לטעון נתונים מהדיסק. לדוגמה, קריאת קובץ CSV היא פשוטה כמו זו: ```python df = pd.read_csv('file.csv') ``` -נראה דוגמאות נוספות לטעינת נתונים, כולל הבאתם מאתרים חיצוניים, בסעיף "אתגר". +נראה דוגמאות נוספות לטעינת נתונים, כולל הבאתם מאתרים חיצוניים, בחלק "אתגר". -### הדפסה ויצירת גרפים +### הדפסה וגרפיקה -מדען נתונים נדרש לעיתים קרובות לחקור את הנתונים, ולכן חשוב להיות מסוגלים להמחיש אותם. כאשר DataFrame גדול, פעמים רבות נרצה רק לוודא שאנו פועלים נכון על ידי הדפסת השורות הראשונות. ניתן לעשות זאת על ידי קריאה ל-`df.head()`. אם אתם מריצים זאת מתוך Jupyter Notebook, זה ידפיס את ה-DataFrame בצורה טבלאית ונוחה. +מדען נתונים לעיתים קרובות צריך לחקור את הנתונים, ולכן חשוב להיות מסוגל להציג אותם בצורה חזותית. כאשר DataFrame גדול, פעמים רבות אנו רוצים רק לוודא שאנחנו עושים הכל נכון על ידי הדפסת השורות הראשונות. ניתן לעשות זאת על ידי קריאה ל-`df.head()`. אם אתם מריצים זאת מתוך Jupyter Notebook, זה ידפיס את ה-DataFrame בצורה טבלאית יפה. -כמו כן, ראינו את השימוש בפונקציה `plot` להמחשת עמודות מסוימות. בעוד ש-`plot` שימושית מאוד למשימות רבות ותומכת בסוגי גרפים שונים באמצעות הפרמטר `kind=`, תמיד ניתן להשתמש בספריית `matplotlib` הגולמית כדי ליצור גרפים מורכבים יותר. נעסוק בהמחשת נתונים בפירוט בשיעורים נפרדים. +כמו כן, ראינו את השימוש בפונקציה `plot` כדי להציג גרפית עמודות מסוימות. בעוד ש-`plot` מאוד שימושית למשימות רבות ותומכת בסוגי גרפים שונים באמצעות הפרמטר `kind=`, תמיד ניתן להשתמש בספריית `matplotlib` הגולמית כדי ליצור גרפים מורכבים יותר. נעסוק בהדמיית נתונים בפירוט בשיעורים נפרדים בקורס. -סקירה זו מכסה את המושגים החשובים ביותר של Pandas, אך הספרייה עשירה מאוד ואין גבול למה שניתן לעשות איתה! כעת ניישם את הידע הזה לפתרון בעיה ספציפית. +סקירה זו מכסה את הרעיונות החשובים ביותר של Pandas, אך הספרייה עשירה מאוד ואין גבול למה שניתן לעשות איתה! עכשיו ניישם את הידע הזה לפתרון בעיה ספציפית. -## 🚀 אתגר 1: ניתוח התפשטות הקורונה +## 🚀 אתגר 1: ניתוח התפשטות COVID -הבעיה הראשונה שבה נתמקד היא מודלינג של התפשטות מגפת הקורונה. לשם כך, נשתמש בנתונים על מספר הנדבקים במדינות שונות, המסופקים על ידי [המרכז להנדסת מערכות ומדע](https://systems.jhu.edu/) (CSSE) ב-[אוניברסיטת ג'ונס הופקינס](https://jhu.edu/). מערך הנתונים זמין ב-[מאגר GitHub זה](https://github.com/CSSEGISandData/COVID-19). +הבעיה הראשונה שבה נתמקד היא מודלינג של התפשטות מגפת COVID-19. כדי לעשות זאת, נשתמש בנתונים על מספר הנדבקים במדינות שונות, המסופקים על ידי [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) ב-[אוניברסיטת ג'ונס הופקינס](https://jhu.edu/). מערך הנתונים זמין ב-[מאגר GitHub זה](https://github.com/CSSEGISandData/COVID-19). -מכיוון שאנו רוצים להדגים כיצד להתמודד עם נתונים, אנו מזמינים אתכם לפתוח את [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) ולקרוא אותו מההתחלה ועד הסוף. תוכלו גם להריץ תאים ולבצע אתגרים שהשארנו עבורכם בסוף. +מכיוון שאנחנו רוצים להדגים כיצד להתמודד עם נתונים, אנו מזמינים אתכם לפתוח את [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) ולקרוא אותו מההתחלה ועד הסוף. תוכלו גם להריץ תאים ולעשות כמה אתגרים שהשארנו לכם בסוף. -![התפשטות הקורונה](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![התפשטות COVID](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.he.png) > אם אינכם יודעים כיצד להריץ קוד ב-Jupyter Notebook, עיינו ב-[מאמר זה](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). ## עבודה עם נתונים לא מובנים -בעוד שנתונים מגיעים לעיתים קרובות בצורה טבלאית, במקרים מסוימים נצטרך להתמודד עם נתונים פחות מובנים, כמו טקסט או תמונות. במקרה כזה, כדי ליישם טכניקות עיבוד נתונים שראינו קודם, נצטרך **לחלץ** נתונים מובנים. הנה כמה דוגמאות: +בעוד שנתונים לעיתים קרובות מגיעים בצורה טבלאית, במקרים מסוימים אנו צריכים להתמודד עם נתונים פחות מובנים, למשל טקסט או תמונות. במקרה כזה, כדי ליישם טכניקות עיבוד נתונים שראינו קודם, עלינו **לחלץ** נתונים מובנים. הנה כמה דוגמאות: * חילוץ מילות מפתח מטקסט ובדיקת תדירות הופעתן -* שימוש ברשתות עצביות לחילוץ מידע על אובייקטים בתמונה -* קבלת מידע על רגשות של אנשים מזרם וידאו +* שימוש ברשתות נוירונים לחילוץ מידע על אובייקטים בתמונה +* קבלת מידע על רגשות של אנשים מזרם מצלמת וידאו -## 🚀 אתגר 2: ניתוח מאמרים על הקורונה +## 🚀 אתגר 2: ניתוח מאמרים על COVID -באתגר זה נמשיך בנושא מגפת הקורונה, ונתמקד בעיבוד מאמרים מדעיים בנושא. קיים [מאגר CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) עם יותר מ-7000 (בזמן הכתיבה) מאמרים על הקורונה, הזמינים עם מטא-נתונים ותקצירים (ובכמחציתם גם טקסט מלא). +באתגר זה, נמשיך עם נושא מגפת COVID, ונעסוק בעיבוד מאמרים מדעיים בנושא. ישנו [מערך נתונים CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) עם יותר מ-7000 (בזמן כתיבת שורות אלו) מאמרים על COVID, הזמינים עם מטא-נתונים ותקצירים (ולגבי כמחציתם גם טקסט מלא). -דוגמה מלאה לניתוח מערך נתונים זה באמצעות [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) מתוארת [בפוסט זה](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). נדון בגרסה פשוטה יותר של ניתוח זה. +דוגמה מלאה לניתוח מערך נתונים זה באמצעות [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) מתוארת [בפוסט בבלוג זה](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). נדון בגרסה פשוטה יותר של ניתוח זה. -> **NOTE**: איננו מספקים עותק של מערך הנתונים כחלק ממאגר זה. ייתכן שתצטרכו להוריד תחילה את הקובץ [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ממערך נתונים זה ב-[Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). ייתכן שתידרש הרשמה ל-Kaggle. ניתן גם להוריד את מערך הנתונים ללא הרשמה [מכאן](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), אך הוא יכלול את כל הטקסטים המלאים בנוסף לקובץ המטא-נתונים. +> **NOTE**: איננו מספקים עותק של מערך הנתונים כחלק ממאגר זה. ייתכן שתצטרכו להוריד תחילה את הקובץ [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ממערך נתונים זה ב-Kaggle. ייתכן שתידרש הרשמה ל-Kaggle. תוכלו גם להוריד את מערך הנתונים ללא הרשמה [מכאן](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), אך הוא יכלול את כל הטקסטים המלאים בנוסף לקובץ המטא-נתונים. -פתחו את [`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) וקראו אותו מההתחלה ועד הסוף. תוכלו גם להריץ תאים ולבצע אתגרים שהשארנו עבורכם בסוף. +פתחו את [`notebook-papers.ipynb`](notebook-papers.ipynb) וקראו אותו מההתחלה ועד הסוף. תוכלו גם להריץ תאים ולעשות כמה אתגרים שהשארנו לכם בסוף. -![טיפול רפואי בקורונה](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![טיפול רפואי ב-COVID](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.he.png) ## עיבוד נתוני תמונה -לאחרונה פותחו מודלים חזקים מאוד של בינה מלאכותית המאפשרים להבין תמונות. ישנם משימות רבות שניתן לפתור באמצעות רשתות עצביות מאומנות מראש או שירותי ענן. דוגמאות כוללות: +לאחרונה פותחו מודלים AI חזקים מאוד שמאפשרים לנו להבין תמונות. ישנם משימות רבות שניתן לפתור באמצעות רשתות נוירונים מוכנות מראש או שירותי ענן. כמה דוגמאות כוללות: -* **סיווג תמונות**, שיכול לעזור לכם לקטלג תמונה לאחת מהקטגוריות המוגדרות מראש. ניתן לאמן מסווגי תמונות מותאמים אישית באמצעות שירותים כמו [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) -* **זיהוי אובייקטים** כדי לזהות אובייקטים שונים בתמונה. שירותים כמו [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) יכולים לזהות מספר אובייקטים נפוצים, וניתן לאמן מודל [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) לזיהוי אובייקטים ספציפיים. +* **סיווג תמונות**, שיכול לעזור לכם לקטלג את התמונה לאחת מהקטגוריות המוגדרות מראש. ניתן בקלות לאמן מסווגי תמונות משלכם באמצעות שירותים כמו [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) +* **זיהוי אובייקטים** כדי לזהות אובייקטים שונים בתמונה. שירותים כמו [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) יכולים לזהות מספר אובייקטים נפוצים, וניתן לאמן מודל [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) לזהות אובייקטים ספציפיים שמעניינים אתכם. * **זיהוי פנים**, כולל גיל, מגדר וזיהוי רגשות. ניתן לעשות זאת באמצעות [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum). -כל שירותי הענן הללו ניתנים לקריאה באמצעות [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), ולכן ניתן לשלבם בקלות בתהליך חקר הנתונים שלכם. +כל שירותי הענן הללו יכולים להיקרא באמצעות [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), ולכן ניתן לשלבם בקלות בתהליך חקר הנתונים שלכם. הנה כמה דוגמאות לחקר נתונים ממקורות תמונה: -* בפוסט [איך ללמוד מדעי הנתונים בלי קידוד](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) אנו חוקרים תמונות מאינסטגרם, בניסיון להבין מה גורם לאנשים לתת יותר לייקים לתמונה. אנו מתחילים בחילוץ מידע רב ככל האפשר מהתמונות באמצעות [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), ואז משתמשים ב-[Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) לבניית מודל פרשני. -* בסדנה [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) אנו משתמשים ב-[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) לחילוץ רגשות של אנשים בתמונות מאירועים, בניסיון להבין מה גורם לאנשים להיות שמחים. +* בפוסט בבלוג [איך ללמוד מדעי נתונים ללא קוד](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) אנו חוקרים תמונות מאינסטגרם, בניסיון להבין מה גורם לאנשים לתת יותר לייקים לתמונה. תחילה אנו מחלצים כמה שיותר מידע מתמונות באמצעות [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), ואז משתמשים ב-[Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) כדי לבנות מודל שניתן לפרש. +* ב-[סדנת מחקרי פנים](https://github.com/CloudAdvocacy/FaceStudies) אנו משתמשים ב-[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) כדי לחלץ רגשות של אנשים בתמונות מאירועים, בניסיון להבין מה גורם לאנשים להיות שמחים. ## סיכום -בין אם יש לכם נתונים מובנים או לא מובנים, באמצעות פייתון תוכלו לבצע את כל השלבים הקשורים לעיבוד והבנת נתונים. זו כנראה הדרך הגמישה ביותר לעיבוד נתונים, ולכן רוב מדעני הנתונים משתמשים בפייתון ככלי העיקרי שלהם. לימוד מעמיק של פייתון הוא כנראה רעיון טוב אם אתם רציניים במסע שלכם במדעי הנתונים! +בין אם כבר יש לכם נתונים מובנים או לא מובנים, באמצעות Python תוכלו לבצע את כל השלבים הקשורים לעיבוד והבנת נתונים. זו כנראה הדרך הגמישה ביותר לעיבוד נתונים, וזו הסיבה שרוב מדעני הנתונים משתמשים ב-Python ככלי העיקרי שלהם. ללמוד Python לעומק זו כנראה החלטה טובה אם אתם רציניים לגבי המסע שלכם במדעי הנתונים! -## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ds/quiz/13) +## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ds/quiz/13) -## סקירה ולמידה עצמית +## סקירה ולימוד עצמי **ספרים** * [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) **משאבים מקוונים** -* המדריך הרשמי [10 דקות ל-Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) -* [תיעוד על המחשת נתונים ב-Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) +* מדריך רשמי [10 דקות ל-Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) +* [תיעוד על הדמיית נתונים ב-Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) -**לימוד פייתון** -* [למדו פייתון בדרך מהנה עם Turtle Graphics ופרקטלים](https://github.com/shwars/pycourse) -* [עשו את הצעדים הראשונים שלכם עם פייתון](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) מסלול למידה ב-[Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) +**לימוד Python** +* [למדו Python בצורה מהנה עם גרפיקת צב ופרקטלים](https://github.com/shwars/pycourse) +* [עשו את הצעדים הראשונים שלכם עם Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) מסלול לימוד ב-[Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) ## משימה -[בצעו חקר נתונים מפורט יותר עבור האתגרים לעיל](assignment.md) +[בצעו מחקר נתונים מפורט יותר עבור האתגרים לעיל](assignment.md) ## קרדיטים diff --git a/translations/hi/2-Working-With-Data/07-python/README.md b/translations/hi/2-Working-With-Data/07-python/README.md index 2364ebae..369a9c48 100644 --- a/translations/hi/2-Working-With-Data/07-python/README.md +++ b/translations/hi/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@ # 使用數據:Python 和 Pandas 庫 -| ![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的草圖筆記](../../sketchnotes/07-WorkWithPython.png) | +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | -| 使用 Python - _由 [@nitya](https://twitter.com/nitya) 繪製的草圖筆記_ | +| 使用 Python - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | -[![介紹影片](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![介紹影片](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.hk.png)](https://youtu.be/dZjWOGbsN4Y) 雖然數據庫提供了非常高效的方式來存儲數據並使用查詢語言進行查詢,但最靈活的數據處理方式是編寫自己的程序來操作數據。在許多情況下,使用數據庫查詢可能更有效。然而,在某些需要更複雜數據處理的情況下,使用 SQL 並不容易完成這些操作。 -數據處理可以用任何編程語言來編寫,但有些語言在處理數據方面更高效。數據科學家通常偏好以下幾種語言之一: +數據處理可以用任何編程語言來編寫,但某些語言在處理數據方面更高效。數據科學家通常偏好以下幾種語言之一: -* **[Python](https://www.python.org/)**:一種通用編程語言,因其簡單易學,常被認為是初學者的最佳選擇之一。Python 擁有許多額外的庫,可以幫助解決許多實際問題,例如從 ZIP 壓縮檔案中提取數據,或將圖片轉換為灰階。除了數據科學,Python 還常用於網頁開發。 +* **[Python](https://www.python.org/)**:一種通用編程語言,因其簡單性常被認為是初學者的最佳選擇之一。Python 擁有許多額外的庫,可以幫助解決許多實際問題,例如從 ZIP 壓縮檔中提取數據,或將圖片轉換為灰階。除了數據科學,Python 還常用於網頁開發。 * **[R](https://www.r-project.org/)**:一個專為統計數據處理而開發的傳統工具箱。它擁有大量的庫(CRAN),使其成為數據處理的良好選擇。然而,R 並不是通用編程語言,通常僅用於數據科學領域。 -* **[Julia](https://julialang.org/)**:另一種專為數據科學開發的語言。它旨在提供比 Python 更好的性能,是進行科學實驗的強大工具。 +* **[Julia](https://julialang.org/)**:另一種專為數據科學開發的語言。它旨在提供比 Python 更好的性能,是科學實驗的強大工具。 在本課中,我們將專注於使用 Python 進行簡單的數據處理。我們假設您對該語言已有基本的了解。如果您想更深入地學習 Python,可以參考以下資源: @@ -32,23 +32,23 @@ CO_OP_TRANSLATOR_METADATA: 我們將專注於一些數據處理的例子,而不是全面介紹所有相關庫。這樣可以讓您了解主要的可能性,並在需要時知道去哪裡尋找解決方案。 -> **最有用的建議**:當您需要對數據執行某些操作但不知道如何做時,嘗試在互聯網上搜索。[Stackoverflow](https://stackoverflow.com/) 通常包含許多針對常見任務的 Python 代碼示例。 +> **最有用的建議**:當您需要對數據執行某些操作但不知道如何實現時,嘗試在互聯網上搜索。[Stackoverflow](https://stackoverflow.com/) 通常包含許多針對常見任務的 Python 代碼示例。 ## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/12) ## 表格數據與 DataFrame -當我們討論關係型數據庫時,您已經接觸過表格數據。當您擁有大量數據,並且這些數據存儲在許多不同的關聯表中時,使用 SQL 來處理它們是非常合理的。然而,在許多情況下,我們擁有一個數據表,並需要對這些數據進行一些**理解**或**洞察**,例如分佈情況、值之間的相關性等。在數據科學中,經常需要對原始數據進行一些轉換,然後進行可視化。這兩個步驟都可以輕鬆地使用 Python 完成。 +當我們討論關係型數據庫時,您已經接觸過表格數據。當您擁有大量數據,並且這些數據存儲在許多不同的關聯表中時,使用 SQL 來處理它們是非常合理的。然而,在許多情況下,我們擁有一個數據表,並需要對該數據獲得一些**理解**或**洞察**,例如分佈情況、值之間的相關性等。在數據科學中,經常需要對原始數據進行一些轉換,然後進行可視化。這兩個步驟都可以輕鬆地使用 Python 完成。 Python 中有兩個非常有用的庫可以幫助您處理表格數據: * **[Pandas](https://pandas.pydata.org/)**:允許您操作所謂的 **DataFrame**,類似於關係型表格。您可以擁有命名的列,並對行、列以及整個 DataFrame 執行不同的操作。 -* **[Numpy](https://numpy.org/)**:用於處理 **張量**(即多維 **數組**)的庫。數組中的值具有相同的基礎類型,它比 DataFrame 更簡單,但提供了更多的數學操作,並且開銷更小。 +* **[Numpy](https://numpy.org/)**:用於處理 **張量**(即多維 **數組**)的庫。數組中的值具有相同的基礎類型,並且比 DataFrame 更簡單,但它提供了更多的數學操作,並且開銷更小。 此外,還有幾個您應該了解的庫: * **[Matplotlib](https://matplotlib.org/)**:用於數據可視化和繪製圖表的庫 -* **[SciPy](https://www.scipy.org/)**:包含一些額外科學功能的庫。我們在討論概率和統計時已經接觸過這個庫 +* **[SciPy](https://www.scipy.org/)**:包含一些額外科學函數的庫。我們在討論概率和統計時已經接觸過該庫 -以下是您通常在 Python 程序開頭用於導入這些庫的代碼: +以下是您通常在 Python 程序開頭導入這些庫的代碼: ```python import numpy as np import pandas as pd @@ -62,9 +62,10 @@ Pandas 圍繞幾個基本概念構建。 **Series** 是一組值的序列,類似於列表或 numpy 數組。主要區別在於 Series 還有一個 **索引**,當我們對 Series 進行操作(例如相加)時,索引會被考慮在內。索引可以簡單如整數行號(從列表或數組創建 Series 時默認使用的索引),也可以具有複雜結構,例如日期區間。 -> **注意**:在隨附的筆記本 [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb) 中有一些 Pandas 的入門代碼。我們在這裡僅概述一些示例,您可以查看完整的筆記本。 +> **注意**:在隨附的筆記本 [`notebook.ipynb`](notebook.ipynb) 中有一些 Pandas 的入門代碼。我們在這裡僅概述一些示例,您可以查看完整的筆記本。 + +舉個例子:我們想分析我們冰淇淋店的銷售情況。讓我們生成一個銷售數據的 Series(某段時間內每天售出的數量): -舉個例子:我們想分析我們冰淇淋店的銷售情況。讓我們生成一段時間內的銷售數據(每天售出的數量): ```python start_date = "Jan 1, 2020" end_date = "Mar 31, 2020" @@ -73,7 +74,7 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![時間序列圖](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![時間序列圖](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.hk.png) 假設每週我們都會為朋友舉辦派對,並額外準備 10 盒冰淇淋。我們可以創建另一個以週為索引的 Series 來展示這一點: ```python @@ -84,20 +85,20 @@ additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W" total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![時間序列圖](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![時間序列圖](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.hk.png) -> **注意**:我們沒有使用簡單的語法 `total_items+additional_items`。如果這樣做,我們會在結果 Series 中得到許多 `NaN`(*非數值*)值。這是因為在 `additional_items` Series 的某些索引點上存在缺失值,並且將 `NaN` 與任何值相加會得到 `NaN`。因此,我們需要在相加時指定 `fill_value` 參數。 +> **注意**:我們並未使用簡單的語法 `total_items+additional_items`。如果這樣做,結果 Series 中會有許多 `NaN`(*非數值*)值。這是因為在 `additional_items` Series 的某些索引點上存在缺失值,而將 `NaN` 與任何值相加的結果都是 `NaN`。因此,我們需要在相加時指定 `fill_value` 參數。 -對於時間序列,我們還可以使用不同的時間間隔對序列進行**重採樣**。例如,假設我們想計算每月的平均銷售量。我們可以使用以下代碼: +對於時間序列,我們還可以使用不同的時間間隔對其進行**重採樣**。例如,假設我們想計算每月的平均銷售量,可以使用以下代碼: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![每月時間序列平均值](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![每月時間序列平均值](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.hk.png) ### DataFrame -DataFrame 本質上是具有相同索引的多個 Series 的集合。我們可以將幾個 Series 組合成一個 DataFrame: +DataFrame 本質上是具有相同索引的多個 Series 的集合。我們可以將多個 Series 組合成一個 DataFrame: ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) @@ -135,11 +136,11 @@ df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) 以下是我們可以對 DataFrame 執行的一些最重要操作: -**列選擇**。我們可以通過 `df['A']` 選擇單個列——此操作返回一個 Series。我們還可以通過 `df[['B','A']]` 選擇列的子集到另一個 DataFrame 中——此操作返回另一個 DataFrame。 +**選擇列**。我們可以通過 `df['A']` 選擇單個列——此操作返回一個 Series。我們還可以通過 `df[['B','A']]` 選擇列的子集到另一個 DataFrame 中——此操作返回另一個 DataFrame。 **篩選**符合條件的行。例如,要僅保留列 `A` 大於 5 的行,我們可以寫 `df[df['A']>5]`。 -> **注意**:篩選的工作方式如下。表達式 `df['A']<5` 返回一個布爾 Series,指示原始 Series `df['A']` 的每個元素是否為 `True` 或 `False`。當布爾 Series 用作索引時,它返回 DataFrame 中的行子集。因此,不能使用任意的 Python 布爾表達式,例如,寫 `df[df['A']>5 and df['A']<7]` 是錯誤的。相反,您應該使用布爾 Series 的特殊 `&` 操作,寫作 `df[(df['A']>5) & (df['A']<7)]`(*括號在這裡很重要*)。 +> **注意**:篩選的工作方式如下。表達式 `df['A']<5` 返回一個布爾 Series,指示原始 Series `df['A']` 的每個元素是否滿足條件。當布爾 Series 用作索引時,它返回 DataFrame 中的行子集。因此,不能使用任意的 Python 布爾表達式,例如,寫 `df[df['A']>5 and df['A']<7]` 是錯誤的。相反,您應該使用布爾 Series 的特殊 `&` 操作,寫作 `df[(df['A']>5) & (df['A']<7)]`(*括號在這裡很重要*)。 **創建新的可計算列**。我們可以通過直觀的表達式輕鬆為 DataFrame 創建新的可計算列: ```python @@ -150,7 +151,7 @@ df['DivA'] = df['A']-df['A'].mean() # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result ``` -後一個示例雖然語法正確,但給出了錯誤的結果,因為它將 Series `B` 的長度賦值給列中的所有值,而不是我們預期的每個元素的長度。 +後一個示例雖然語法正確,但給出了錯誤的結果,因為它將 Series `B` 的長度賦值給所有值,而不是我們預期的每個元素的長度。 如果我們需要計算這樣的複雜表達式,可以使用 `apply` 函數。最後一個示例可以寫成如下: ```python @@ -173,14 +174,14 @@ df['LenB'] = df['B'].apply(len) | 7 | 8 | very | 3.0 | 4 | | 8 | 9 | much | 4.0 | 4 | -**基於數字選擇行**可以使用 `iloc` 結構。例如,要從 DataFrame 中選擇前 5 行: +**基於行號選擇行**可以使用 `iloc` 結構。例如,要從 DataFrame 中選擇前 5 行: ```python df.iloc[:5] ``` -**分組**通常用於獲得類似於 Excel 中 *樞紐分析表* 的結果。假設我們想計算列 `A` 的平均值,按 `LenB` 的每個值分組。我們可以按 `LenB` 將 DataFrame 分組,然後調用 `mean`: +**分組**通常用於獲得類似於 Excel 中*樞軸表*的結果。假設我們想計算每個 `LenB` 值對應的列 `A` 的平均值。我們可以按 `LenB` 將 DataFrame 分組,然後調用 `mean`: ```python -df.groupby(by='LenB').mean() +df.groupby(by='LenB')[['A','DivA']].mean() ``` 如果我們需要計算平均值和組中的元素數量,則可以使用更複雜的 `aggregate` 函數: ```python @@ -199,67 +200,67 @@ df.groupby(by='LenB') \ | 6 | 2 | 6.000000 | ### 獲取數據 -我們已經看到如何輕鬆地從 Python 對象構建 Series 和 DataFrame。然而,數據通常以文本文件或 Excel 表格的形式出現。幸運的是,Pandas 為我們提供了一種簡單的方法來從磁碟中加載數據。例如,讀取 CSV 文件就像這樣簡單: +我們已經看到如何輕鬆地從 Python 對象構建 Series 和 DataFrames。然而,數據通常以文本文件或 Excel 表格的形式存在。幸運的是,Pandas 為我們提供了一種簡單的方法來從磁碟中載入數據。例如,讀取 CSV 文件就像這樣簡單: ```python df = pd.read_csv('file.csv') ``` -我們將在“挑戰”部分中看到更多加載數據的例子,包括從外部網站獲取數據。 +我們將在“挑戰”部分中看到更多載入數據的例子,包括從外部網站獲取數據。 -### 打印與繪圖 +### 打印和繪圖 -數據科學家經常需要探索數據,因此能夠將數據可視化非常重要。當 DataFrame 很大時,我們通常只想打印出前幾行來確保我們的操作是正確的。這可以通過調用 `df.head()` 來完成。如果你在 Jupyter Notebook 中運行它,它會以漂亮的表格形式打印出 DataFrame。 +數據科學家經常需要探索數據,因此能夠可視化數據非常重要。當 DataFrame 很大時,我們通常只需要打印出前幾行來確保我們的操作是正確的。這可以通過調用 `df.head()` 完成。如果你在 Jupyter Notebook 中運行,它會以漂亮的表格形式打印出 DataFrame。 -我們還看到了使用 `plot` 函數來可視化某些列的用法。雖然 `plot` 對於許多任務非常有用,並且通過 `kind=` 參數支持多種圖表類型,但你也可以使用原始的 `matplotlib` 庫來繪製更複雜的圖表。我們將在單獨的課程中詳細介紹數據可視化。 +我們還看到過使用 `plot` 函數來可視化某些列的用法。雖然 `plot` 對許多任務非常有用,並且通過 `kind=` 參數支持多種不同的圖表類型,但你也可以使用原始的 `matplotlib` 庫來繪製更複雜的圖表。我們將在單獨的課程中詳細介紹數據可視化。 -這個概述涵蓋了 Pandas 的一些重要概念,但這個庫非常豐富,你可以用它做的事情幾乎是無限的!現在,讓我們應用這些知識來解決具體問題。 +這個概述涵蓋了 Pandas 的最重要概念,但這個庫非常豐富,幾乎沒有你不能用它完成的事情!現在讓我們應用這些知識來解決具體問題。 ## 🚀 挑戰 1:分析 COVID 傳播 -我們將專注於的第一個問題是建模 COVID-19 的流行病傳播。為此,我們將使用由 [約翰霍普金斯大學](https://jhu.edu/) 的 [系統科學與工程中心](https://systems.jhu.edu/) (CSSE) 提供的不同國家感染人數數據。數據集可在 [這個 GitHub 儲存庫](https://github.com/CSSEGISandData/COVID-19) 中獲得。 +我們將專注於的第一個問題是 COVID-19 的流行病傳播建模。為了做到這一點,我們將使用由 [約翰霍普金斯大學](https://jhu.edu/) 的 [系統科學與工程中心](https://systems.jhu.edu/) (CSSE) 提供的不同國家感染人數數據。數據集可在 [這個 GitHub 存儲庫](https://github.com/CSSEGISandData/COVID-19) 中找到。 -由於我們想展示如何處理數據,我們邀請你打開 [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) 並從頭到尾閱讀它。你還可以執行單元格,並完成我們在最後為你留下的一些挑戰。 +由於我們想展示如何處理數據,我們邀請你打開 [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) 並從頭到尾閱讀。你也可以執行單元格,並完成我們在最後留下的一些挑戰。 -![COVID 傳播](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![COVID 傳播](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.hk.png) > 如果你不知道如何在 Jupyter Notebook 中運行代碼,可以查看 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 ## 處理非結構化數據 -雖然數據通常以表格形式出現,但在某些情況下,我們需要處理非結構化數據,例如文本或圖像。在這種情況下,為了應用我們上面看到的數據處理技術,我們需要以某種方式**提取**結構化數據。以下是一些例子: +雖然數據通常以表格形式出現,但在某些情況下我們需要處理較少結構化的數據,例如文本或圖片。在這種情況下,要應用我們上面看到的數據處理技術,我們需要以某種方式**提取**結構化數據。以下是一些例子: -* 從文本中提取關鍵詞,並查看這些關鍵詞出現的頻率 +* 從文本中提取關鍵字,並查看這些關鍵字出現的頻率 * 使用神經網絡提取圖片中物體的信息 * 獲取視頻鏡頭中人物的情感信息 -## 🚀 挑戰 2:分析 COVID 論文 +## 🚀 挑戰 2:分析 COVID 相關論文 -在這個挑戰中,我們將繼續關注 COVID 大流行的主題,並專注於處理相關的科學論文。有一個 [CORD-19 數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge),其中包含超過 7000 篇(撰寫本文時)關於 COVID 的論文,並附有元數據和摘要(其中約一半還提供了全文)。 +在這個挑戰中,我們將繼續探討 COVID 疫情的主題,並專注於處理相關的科學論文。有一個 [CORD-19 數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge),其中包含超過 7000 篇(撰寫時)關於 COVID 的論文,並提供了元數據和摘要(其中約一半還提供了全文)。 -使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 認知服務分析該數據集的完整示例已在 [這篇博客文章](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) 中描述。我們將討論該分析的簡化版本。 +使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 認知服務分析此數據集的完整示例已在 [這篇博客文章](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) 中描述。我們將討論此分析的簡化版本。 -> **NOTE**: 我們並未在此儲存庫中提供數據集的副本。你可能需要先從 [Kaggle 上的這個數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 下載 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 文件。可能需要在 Kaggle 上註冊。你也可以從 [這裡](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) 無需註冊下載數據集,但它將包括所有全文以及元數據文件。 +> **NOTE**: 我們不提供此存儲庫中的數據集副本。你可能需要先從 [Kaggle 的這個數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 中下載 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 文件。可能需要在 Kaggle 註冊。你也可以從 [這裡](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) 無需註冊下載數據集,但它將包括所有全文以及元數據文件。 -打開 [`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) 並從頭到尾閱讀它。你還可以執行單元格,並完成我們在最後為你留下的一些挑戰。 +打開 [`notebook-papers.ipynb`](notebook-papers.ipynb) 並從頭到尾閱讀。你也可以執行單元格,並完成我們在最後留下的一些挑戰。 -![COVID 醫療處理](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![COVID 醫療處理](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.hk.png) -## 處理圖像數據 +## 處理圖片數據 -最近,已經開發出非常強大的 AI 模型,能夠理解圖像。使用預訓練的神經網絡或雲服務可以解決許多任務。一些例子包括: +最近,已經開發出非常強大的 AI 模型,能夠理解圖片。有許多任務可以使用預訓練的神經網絡或雲服務解決。一些例子包括: -* **圖像分類**,可以幫助你將圖像分類到預定義的類別中。你可以使用像 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務輕鬆訓練自己的圖像分類器。 -* **物體檢測**,用於檢測圖像中的不同物體。像 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務可以檢測許多常見物體,你也可以訓練 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 模型來檢測一些特定的感興趣物體。 +* **圖片分類**,可以幫助你將圖片分類到預定義的類別之一。你可以使用像 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務輕鬆訓練自己的圖片分類器。 +* **物體檢測**,用於檢測圖片中的不同物體。像 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務可以檢測許多常見物體,你也可以訓練 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 模型來檢測一些特定的感興趣物體。 * **人臉檢測**,包括年齡、性別和情感檢測。這可以通過 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 完成。 所有這些雲服務都可以通過 [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) 調用,因此可以輕鬆地集成到你的數據探索工作流程中。 -以下是一些從圖像數據源中探索數據的例子: -* 在博客文章 [如何在無需編碼的情況下學習數據科學](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) 中,我們探索了 Instagram 照片,試圖了解什麼使人們對某張照片點贊更多。我們首先使用 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 從圖片中提取盡可能多的信息,然後使用 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 構建可解釋的模型。 +以下是一些探索圖片數據源的例子: +* 在博客文章 [如何在無需編碼的情況下學習數據科學](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) 中,我們探索 Instagram 照片,試圖了解什麼使人們更喜歡某張照片。我們首先使用 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 從圖片中提取盡可能多的信息,然後使用 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 建立可解釋的模型。 * 在 [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) 中,我們使用 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 提取活動照片中人物的情感,試圖了解什麼使人們感到快樂。 ## 結論 -無論你擁有的是結構化數據還是非結構化數據,使用 Python 你都可以執行與數據處理和理解相關的所有步驟。這可能是最靈活的數據處理方式,這也是為什麼大多數數據科學家將 Python 作為主要工具的原因。如果你對數據科學之旅是認真的,那麼深入學習 Python 可能是一個好主意! +無論你已經擁有結構化數據還是非結構化數據,使用 Python 你都可以完成所有與數據處理和理解相關的步驟。這可能是最靈活的數據處理方式,這也是大多數數據科學家使用 Python 作為主要工具的原因。如果你對數據科學之旅非常認真,深入學習 Python 可能是一個好主意! ## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/13) @@ -269,12 +270,12 @@ df = pd.read_csv('file.csv') * [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) **線上資源** -* 官方 [10 分鐘學 Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 教程 +* 官方 [10 分鐘學習 Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 教程 * [Pandas 可視化文檔](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) **學習 Python** -* [用 Turtle Graphics 和分形圖形趣味學習 Python](https://github.com/shwars/pycourse) -* [從 Python 的第一步開始](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) 的學習路徑在 [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) +* [用 Turtle Graphics 和分形圖以有趣的方式學習 Python](https://github.com/shwars/pycourse) +* [從 Python 開始你的第一步](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) 在 [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 上的學習路徑 ## 作業 @@ -287,4 +288,4 @@ df = pd.read_csv('file.csv') --- **免責聲明**: -此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file +本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。 \ No newline at end of file diff --git a/translations/hr/2-Working-With-Data/07-python/README.md b/translations/hr/2-Working-With-Data/07-python/README.md index 362115c7..81a5e012 100644 --- a/translations/hr/2-Working-With-Data/07-python/README.md +++ b/translations/hr/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@ # ਡਾਟਾ ਨਾਲ ਕੰਮ ਕਰਨਾ: ਪਾਇਥਨ ਅਤੇ ਪੈਂਡਾਸ ਲਾਇਬ੍ਰੇਰੀ -| ![ [(@sketchthedocs)] ਦੁਆਰਾ ਸਕੈਚਨੋਟ](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | -| :-------------------------------------------------------------------------------------------------------: | -| ਪਾਇਥਨ ਨਾਲ ਕੰਮ ਕਰਨਾ - _[@nitya](https://twitter.com/nitya) ਦੁਆਰਾ ਸਕੈਚਨੋਟ_ | +| ![ [(@sketchthedocs)](https://sketchthedocs.dev) ਦੁਆਰਾ ਬਣਾਈ ਗਈ ਸਕੈਚਨੋਟ ](../../sketchnotes/07-WorkWithPython.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ਪਾਇਥਨ ਨਾਲ ਕੰਮ ਕਰਨਾ - _[@nitya](https://twitter.com/nitya) ਦੁਆਰਾ ਬਣਾਈ ਗਈ ਸਕੈਚਨੋਟ_ | -[![ਜਾਣ-ਪਛਾਣ ਵੀਡੀਓ](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![ਜਾਣ-ਪਛਾਣ ਵੀਡੀਓ](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.pa.png)](https://youtu.be/dZjWOGbsN4Y) -ਜਦੋਂ ਕਿ ਡਾਟਾਬੇਸ ਡਾਟਾ ਨੂੰ ਸਟੋਰ ਕਰਨ ਅਤੇ ਕਵੈਰੀ ਲੈਂਗਵੇਜਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਵੈਰੀ ਕਰਨ ਦੇ ਬਹੁਤ ਹੀ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਪੇਸ਼ ਕਰਦੇ ਹਨ, ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਸਭ ਤੋਂ ਲਚਕਦਾਰ ਤਰੀਕਾ ਆਪਣਾ ਪ੍ਰੋਗਰਾਮ ਲਿਖਣਾ ਹੈ। ਕਈ ਕੇਸਾਂ ਵਿੱਚ, ਡਾਟਾਬੇਸ ਕਵੈਰੀ ਕਰਨਾ ਜ਼ਿਆਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋਵੇਗਾ। ਹਾਲਾਂਕਿ, ਕੁਝ ਕੇਸਾਂ ਵਿੱਚ ਜਦੋਂ ਜ਼ਿਆਦਾ ਜਟਿਲ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਹ SQL ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਸਾਨੀ ਨਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। -ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਕਿਸੇ ਵੀ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਕੁਝ ਭਾਸ਼ਾਵਾਂ ਹਨ ਜੋ ਡਾਟਾ ਨਾਲ ਕੰਮ ਕਰਨ ਦੇ ਸੰਦਰਭ ਵਿੱਚ ਉੱਚ ਪੱਧਰ ਦੀਆਂ ਹਨ। ਡਾਟਾ ਸਾਇੰਟਿਸਟ ਆਮ ਤੌਰ 'ਤੇ ਹੇਠ ਲਿਖੀਆਂ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹਨ: +ਜਦੋਂ ਕਿ ਡਾਟਾਬੇਸ ਡਾਟਾ ਨੂੰ ਸਟੋਰ ਕਰਨ ਅਤੇ ਕਵੈਰੀ ਲੈਂਗਵੇਜਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਵੈਰੀ ਕਰਨ ਦੇ ਲਈ ਬਹੁਤ ਕੁਸ਼ਲ ਤਰੀਕੇ ਪੇਸ਼ ਕਰਦੇ ਹਨ, ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਸਭ ਤੋਂ ਲਚਕਦਾਰ ਤਰੀਕਾ ਆਪਣਾ ਪ੍ਰੋਗਰਾਮ ਲਿਖਣਾ ਹੈ ਜੋ ਡਾਟਾ ਨੂੰ ਮੋੜ ਸਕੇ। ਕਈ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਡਾਟਾਬੇਸ ਕਵੈਰੀ ਕਰਨਾ ਜ਼ਿਆਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋਵੇਗਾ। ਹਾਲਾਂਕਿ ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ ਜਦੋਂ ਜ਼ਿਆਦਾ ਜਟਿਲ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਹ SQL ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਸਾਨੀ ਨਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। +ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਕਿਸੇ ਵੀ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਪਰ ਕੁਝ ਭਾਸ਼ਾਵਾਂ ਹਨ ਜੋ ਡਾਟਾ ਨਾਲ ਕੰਮ ਕਰਨ ਦੇ ਹਿਸਾਬ ਨਾਲ ਉੱਚ ਪੱਧਰ ਦੀਆਂ ਹਨ। ਡਾਟਾ ਸਾਇੰਟਿਸਟ ਆਮ ਤੌਰ 'ਤੇ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹਨ: -* **[Python](https://www.python.org/)**, ਇੱਕ ਜਨਰਲ-ਪਰਪਜ਼ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ, ਜੋ ਅਕਸਰ ਇਸਦੀ ਸਾਦਗੀ ਦੇ ਕਾਰਨ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਇੱਕ ਮੰਨੀ ਜਾਂਦੀ ਹੈ। ਪਾਇਥਨ ਵਿੱਚ ਕਈ ਵਾਧੂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਕਈ ਵਿਆਵਹਾਰਿਕ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ZIP ਆਰਕਾਈਵ ਤੋਂ ਡਾਟਾ ਕੱਢਣਾ ਜਾਂ ਤਸਵੀਰ ਨੂੰ ਗ੍ਰੇਸਕੇਲ ਵਿੱਚ ਬਦਲਣਾ। ਡਾਟਾ ਸਾਇੰਸ ਤੋਂ ਇਲਾਵਾ, ਪਾਇਥਨ ਅਕਸਰ ਵੈੱਬ ਵਿਕਾਸ ਲਈ ਵੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। -* **[R](https://www.r-project.org/)** ਇੱਕ ਪਰੰਪਰਾਗਤ ਟੂਲਬਾਕਸ ਹੈ ਜੋ ਸਾਂਖੇਕੀ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖ ਕੇ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਵਿੱਚ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਵੱਡਾ ਰਿਪੋਜ਼ਟਰੀ (CRAN) ਸ਼ਾਮਲ ਹੈ, ਜਿਸ ਨਾਲ ਇਹ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਇੱਕ ਚੰਗਾ ਚੋਣ ਬਣ ਜਾਂਦਾ ਹੈ। ਹਾਲਾਂਕਿ, R ਇੱਕ ਜਨਰਲ-ਪਰਪਜ਼ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਨਹੀਂ ਹੈ, ਅਤੇ ਡਾਟਾ ਸਾਇੰਸ ਡੋਮੇਨ ਤੋਂ ਬਾਹਰ ਕਦਾਚਿਤ ਹੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। -* **[Julia](https://julialang.org/)** ਇੱਕ ਹੋਰ ਭਾਸ਼ਾ ਹੈ ਜੋ ਖਾਸ ਤੌਰ 'ਤੇ ਡਾਟਾ ਸਾਇੰਸ ਲਈ ਵਿਕਸਿਤ ਕੀਤੀ ਗਈ ਹੈ। ਇਹ ਪਾਇਥਨ ਨਾਲੋਂ ਬਿਹਤਰ ਪ੍ਰਦਰਸ਼ਨ ਦੇਣ ਲਈ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ, ਜਿਸ ਨਾਲ ਇਹ ਵਿਗਿਆਨਕ ਪ੍ਰਯੋਗਾਂ ਲਈ ਇੱਕ ਸ਼ਾਨਦਾਰ ਸੰਦ ਬਣ ਜਾਂਦਾ ਹੈ। +* **[ਪਾਇਥਨ](https://www.python.org/)**, ਇੱਕ ਜਨਰਲ-ਪਰਪਜ਼ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ, ਜੋ ਅਕਸਰ ਇਸਦੀ ਸਧਾਰਨਤਾ ਦੇ ਕਾਰਨ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਵਿਕਲਪ ਮੰਨੀ ਜਾਂਦੀ ਹੈ। ਪਾਇਥਨ ਵਿੱਚ ਕਈ ਵਾਧੂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਕਈ ਵਿਆਵਹਾਰਿਕ ਸਮੱਸਿਆਵਾਂ ਦਾ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ZIP ਆਰਕਾਈਵ ਤੋਂ ਤੁਹਾਡਾ ਡਾਟਾ ਕੱਢਣਾ, ਜਾਂ ਤਸਵੀਰ ਨੂੰ ਗ੍ਰੇਸਕੇਲ ਵਿੱਚ ਬਦਲਣਾ। ਡਾਟਾ ਸਾਇੰਸ ਤੋਂ ਇਲਾਵਾ, ਪਾਇਥਨ ਅਕਸਰ ਵੈੱਬ ਵਿਕਾਸ ਲਈ ਵੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। +* **[R](https://www.r-project.org/)** ਇੱਕ ਪਰੰਪਰਾਗਤ ਟੂਲਬਾਕਸ ਹੈ ਜੋ ਅੰਕੜੇਵਾਰ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖ ਕੇ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਵਿੱਚ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਵੱਡਾ ਸੰਗ੍ਰਹਿ (CRAN) ਸ਼ਾਮਲ ਹੈ, ਜਿਸ ਕਰਕੇ ਇਹ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਇੱਕ ਚੰਗਾ ਚੋਣ ਹੈ। ਹਾਲਾਂਕਿ, R ਇੱਕ ਜਨਰਲ-ਪਰਪਜ਼ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਨਹੀਂ ਹੈ, ਅਤੇ ਡਾਟਾ ਸਾਇੰਸ ਖੇਤਰ ਤੋਂ ਬਾਹਰ ਕਦਾਚਿਤ ਹੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। +* **[ਜੂਲੀਆ](https://julialang.org/)** ਇੱਕ ਹੋਰ ਭਾਸ਼ਾ ਹੈ ਜੋ ਖਾਸ ਤੌਰ 'ਤੇ ਡਾਟਾ ਸਾਇੰਸ ਲਈ ਵਿਕਸਿਤ ਕੀਤੀ ਗਈ ਹੈ। ਇਹ ਪਾਇਥਨ ਨਾਲੋਂ ਬਿਹਤਰ ਪ੍ਰਦਰਸ਼ਨ ਦੇਣ ਲਈ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ, ਜਿਸ ਕਰਕੇ ਇਹ ਵਿਗਿਆਨਕ ਪ੍ਰਯੋਗਾਂ ਲਈ ਇੱਕ ਸ਼ਾਨਦਾਰ ਸਾਧਨ ਹੈ। -ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਸਧਾਰਨ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਪਾਇਥਨ ਦੀ ਵਰਤੋਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। ਅਸੀਂ ਭਾਸ਼ਾ ਨਾਲ ਮੂਲ ਜਾਣੂ ਹੋਣ ਦੀ ਧਾਰਨਾ ਕਰਦੇ ਹਾਂ। ਜੇ ਤੁਸੀਂ ਪਾਇਥਨ ਦਾ ਡੂੰਘਾ ਦੌਰਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਹੇਠ ਲਿਖੇ ਸਰੋਤਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹੋ: +ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਸਧਾਰਨ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਪਾਇਥਨ ਦੀ ਵਰਤੋਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। ਅਸੀਂ ਭਾਸ਼ਾ ਨਾਲ ਮੂਲ ਜਾਣੂ ਹੋਣ ਦੀ ਧਾਰਨਾ ਕਰਦੇ ਹਾਂ। ਜੇ ਤੁਸੀਂ ਪਾਇਥਨ ਦਾ ਗਹਿਰਾ ਦੌਰਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸਾਧਨਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹੋ: * [Turtle Graphics ਅਤੇ Fractals ਨਾਲ ਮਜ਼ੇਦਾਰ ਤਰੀਕੇ ਨਾਲ ਪਾਇਥਨ ਸਿੱਖੋ](https://github.com/shwars/pycourse) - GitHub-ਅਧਾਰਿਤ ਪਾਇਥਨ ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਜਾਣੂ ਹੋਣ ਦਾ ਕੋਰਸ -* [ਪਾਇਥਨ ਨਾਲ ਆਪਣੇ ਪਹਿਲੇ ਕਦਮ ਚੁੱਕੋ](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 'ਤੇ ਲਰਨਿੰਗ ਪਾਥ +* [ਪਾਇਥਨ ਨਾਲ ਆਪਣੇ ਪਹਿਲੇ ਕਦਮ ਚੁੱਕੋ](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 'ਤੇ ਲਰਨਿੰਗ ਪਾਠ -ਡਾਟਾ ਕਈ ਰੂਪਾਂ ਵਿੱਚ ਆ ਸਕਦਾ ਹੈ। ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਡਾਟਾ ਦੇ ਤਿੰਨ ਰੂਪਾਂ 'ਤੇ ਵਿਚਾਰ ਕਰਾਂਗੇ - **ਟੇਬੂਲਰ ਡਾਟਾ**, **ਟੈਕਸਟ** ਅਤੇ **ਤਸਵੀਰਾਂ**। +ਡਾਟਾ ਕਈ ਰੂਪਾਂ ਵਿੱਚ ਆ ਸਕਦਾ ਹੈ। ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਡਾਟਾ ਦੇ ਤਿੰਨ ਰੂਪਾਂ 'ਤੇ ਵਿਚਾਰ ਕਰਾਂਗੇ - **ਟੇਬੂਲਰ ਡਾਟਾ**, **ਟੈਕਸਟ**, ਅਤੇ **ਤਸਵੀਰਾਂ**। -ਅਸੀਂ ਤੁਹਾਨੂੰ ਸਾਰੇ ਸੰਬੰਧਿਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਪੂਰਾ ਜਾਇਜ਼ਾ ਦੇਣ ਦੀ ਬਜਾਏ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੇ ਕੁਝ ਉਦਾਹਰਣਾਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। ਇਹ ਤੁਹਾਨੂੰ ਕੀ ਸੰਭਵ ਹੈ ਇਸਦਾ ਮੁੱਖ ਵਿਚਾਰ ਦੇਵੇਗਾ, ਅਤੇ ਜਦੋਂ ਤੁਹਾਨੂੰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਤੁਹਾਡੇ ਸਮੱਸਿਆਵਾਂ ਦੇ ਹੱਲ ਕਿੱਥੇ ਲੱਭਣੇ ਹਨ ਇਸਦਾ ਸਮਝਣ ਦੇਵੇਗਾ। +ਅਸੀਂ ਤੁਹਾਨੂੰ ਸਾਰੇ ਸੰਬੰਧਿਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਪੂਰਾ ਜਾਇਜ਼ਾ ਦੇਣ ਦੀ ਬਜਾਏ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੇ ਕੁਝ ਉਦਾਹਰਣਾਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। ਇਹ ਤੁਹਾਨੂੰ ਕੀ ਸੰਭਵ ਹੈ ਇਸ ਦੀ ਮੁੱਖ ਵਿਚਾਰ ਦੇਵੇਗਾ, ਅਤੇ ਜਦੋਂ ਤੁਹਾਨੂੰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਤੁਹਾਡੇ ਸਮੱਸਿਆਵਾਂ ਦੇ ਹੱਲ ਕਿੱਥੇ ਲੱਭਣੇ ਹਨ ਇਸ ਦੀ ਸਮਝ ਦੇਵੇਗਾ। -> **ਸਭ ਤੋਂ ਉਪਯੋਗ ਸਲਾਹ**। ਜਦੋਂ ਤੁਹਾਨੂੰ ਡਾਟਾ 'ਤੇ ਕੋਈ ਖਾਸ ਕਾਰਵਾਈ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜਿਸਦਾ ਤੁਹਾਨੂੰ ਪਤਾ ਨਹੀਂ ਕਿ ਕਿਵੇਂ ਕਰਨਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਇੰਟਰਨੈਟ 'ਤੇ ਖੋਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। [Stackoverflow](https://stackoverflow.com/) ਅਕਸਰ ਕਈ ਆਮ ਕੰਮਾਂ ਲਈ ਪਾਇਥਨ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਉਪਯੋਗ ਕੋਡ ਨਮੂਨੇ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। +> **ਸਭ ਤੋਂ ਉਪਯੋਗ ਸਲਾਹ**। ਜਦੋਂ ਤੁਹਾਨੂੰ ਡਾਟਾ 'ਤੇ ਕੋਈ ਖਾਸ ਕਾਰਵਾਈ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ ਜਿਸ ਬਾਰੇ ਤੁਹਾਨੂੰ ਪਤਾ ਨਹੀਂ ਕਿ ਕਿਵੇਂ ਕਰਨਾ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਇੰਟਰਨੈਟ 'ਤੇ ਖੋਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। [Stackoverflow](https://stackoverflow.com/) ਅਕਸਰ ਕਈ ਆਮ ਕੰਮਾਂ ਲਈ ਪਾਇਥਨ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਉਪਯੋਗ ਕੋਡ ਨਮੂਨੇ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। ## [ਪ੍ਰੀ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ds/quiz/12) -## ਟੇਬੂਲਰ ਡਾਟਾ ਅਤੇ ਡਾਟਾਫਰੇਮ +## ਟੇਬੂਲਰ ਡਾਟਾ ਅਤੇ ਡਾਟਾਫ੍ਰੇਮ -ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਟੇਬੂਲਰ ਡਾਟਾ ਨਾਲ ਮਿਲ ਚੁੱਕੇ ਹੋ ਜਦੋਂ ਅਸੀਂ ਰਿਲੇਸ਼ਨਲ ਡਾਟਾਬੇਸਾਂ ਬਾਰੇ ਗੱਲ ਕੀਤੀ ਸੀ। ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰਾ ਡਾਟਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਕਈ ਵੱਖ-ਵੱਖ ਜੁੜੇ ਹੋਏ ਟੇਬਲਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਸ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ SQL ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਬਿਲਕੁਲ ਸਹੀ ਹੁੰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਕਈ ਕੇਸਾਂ ਵਿੱਚ ਜਦੋਂ ਸਾਡੇ ਕੋਲ ਡਾਟਾ ਦੀ ਇੱਕ ਸਧਾਰਨ ਟੇਬਲ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਸਾਨੂੰ ਇਸ ਡਾਟਾ ਬਾਰੇ ਕੁਝ **ਸਮਝ** ਜਾਂ **ਅੰਦਰੂਨੀ ਜਾਣਕਾਰੀ** ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਵੰਡ, ਮੁੱਲਾਂ ਦੇ ਵਿਚਕਾਰ ਸੰਬੰਧ, ਆਦਿ। ਡਾਟਾ ਸਾਇੰਸ ਵਿੱਚ, ਕਈ ਕੇਸਾਂ ਵਿੱਚ ਸਾਨੂੰ ਮੂਲ ਡਾਟਾ ਦੇ ਕੁਝ ਰੂਪਾਂਤਰਨ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਸਦੇ ਬਾਅਦ ਵਿਜੁਅਲਾਈਜ਼ੇਸ਼ਨ ਹੁੰਦੀ ਹੈ। ਇਹ ਦੋਵੇਂ ਕਦਮ ਪਾਇਥਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਸਾਨੀ ਨਾਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। +ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਟੇਬੂਲਰ ਡਾਟਾ ਨਾਲ ਮਿਲ ਚੁੱਕੇ ਹੋ ਜਦੋਂ ਅਸੀਂ ਰਿਲੇਸ਼ਨਲ ਡਾਟਾਬੇਸਾਂ ਬਾਰੇ ਗੱਲ ਕੀਤੀ ਸੀ। ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰਾ ਡਾਟਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਕਈ ਵੱਖ-ਵੱਖ ਜੁੜੇ ਹੋਏ ਟੇਬਲਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਸ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ SQL ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਬਿਲਕੁਲ ਸਹੀ ਹੁੰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਕਈ ਮਾਮਲਿਆਂ ਵਿੱਚ ਜਦੋਂ ਸਾਡੇ ਕੋਲ ਡਾਟਾ ਦੀ ਇੱਕ ਸਧਾਰਨ ਟੇਬਲ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਸਾਨੂੰ ਇਸ ਡਾਟਾ ਬਾਰੇ ਕੁਝ **ਸਮਝ** ਜਾਂ **ਅੰਦਰੂਨੀ ਜਾਣਕਾਰੀ** ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਵੰਡ, ਮੁੱਲਾਂ ਦੇ ਵਿਚਕਾਰ ਸੰਬੰਧ, ਆਦਿ। ਡਾਟਾ ਸਾਇੰਸ ਵਿੱਚ, ਕਈ ਮਾਮਲਿਆਂ ਵਿੱਚ ਸਾਨੂੰ ਮੂਲ ਡਾਟਾ ਦੇ ਕੁਝ ਰੂਪਾਂਤਰਨ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਸ ਤੋਂ ਬਾਅਦ ਵਿਜ਼ੁਅਲਾਈਜ਼ੇਸ਼ਨ ਹੁੰਦੀ ਹੈ। ਇਹ ਦੋਵੇਂ ਕਦਮ ਪਾਇਥਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਸਾਨੀ ਨਾਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਪਾਇਥਨ ਵਿੱਚ ਟੇਬੂਲਰ ਡਾਟਾ ਨਾਲ ਨਿਪਟਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਵਾਲੀਆਂ ਦੋ ਸਭ ਤੋਂ ਉਪਯੋਗ ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਨ: -* **[Pandas](https://pandas.pydata.org/)** ਤੁਹਾਨੂੰ **ਡਾਟਾਫਰੇਮ** ਮੈਨੇਜ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਰਿਲੇਸ਼ਨਲ ਟੇਬਲਾਂ ਦੇ ਸਮਾਨ ਹਨ। ਤੁਸੀਂ ਨਾਮਿਤ ਕਾਲਮ ਰੱਖ ਸਕਦੇ ਹੋ, ਅਤੇ ਰੋਜ਼, ਕਾਲਮ ਅਤੇ ਡਾਟਾਫਰੇਮ 'ਤੇ ਵੱਖ-ਵੱਖ ਕਾਰਵਾਈਆਂ ਕਰ ਸਕਦੇ ਹੋ। -* **[Numpy](https://numpy.org/)** **ਟੈਂਸਰ**, ਜ਼ਿਆਦਾ-ਮਾਤਰਾ ਵਾਲੇ **ਐਰੇ** ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ ਹੈ। ਐਰੇ ਵਿੱਚ ਇੱਕੋ ਜਿਹੇ ਅਧਾਰਤ ਕਿਸਮ ਦੇ ਮੁੱਲ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਇਹ ਡਾਟਾਫਰੇਮ ਨਾਲੋਂ ਸਧਾਰਨ ਹੁੰਦਾ ਹੈ, ਪਰ ਇਹ ਵਧੇਰੇ ਗਣਿਤੀ ਕਾਰਵਾਈਆਂ ਪੇਸ਼ ਕਰਦਾ ਹੈ, ਅਤੇ ਘੱਟ ਓਵਰਹੈੱਡ ਪੈਦਾ ਕਰਦਾ ਹੈ। +* **[Pandas](https://pandas.pydata.org/)** ਤੁਹਾਨੂੰ **ਡਾਟਾਫ੍ਰੇਮ** ਮੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਰਿਲੇਸ਼ਨਲ ਟੇਬਲਾਂ ਦੇ ਸਮਾਨ ਹਨ। ਤੁਸੀਂ ਨਾਮਿਤ ਕਾਲਮ ਰੱਖ ਸਕਦੇ ਹੋ, ਅਤੇ ਪੰਗਤਾਂ, ਕਾਲਮਾਂ ਅਤੇ ਡਾਟਾਫ੍ਰੇਮਾਂ 'ਤੇ ਵੱਖ-ਵੱਖ ਕਾਰਵਾਈਆਂ ਕਰ ਸਕਦੇ ਹੋ। +* **[Numpy](https://numpy.org/)** **ਟੈਂਸਰ**, ਜ਼ਿਆਦਾ-ਮਾਤਰਾ **ਐਰੇ** ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ ਹੈ। ਐਰੇ ਵਿੱਚ ਇੱਕੋ ਜਿਹੇ ਅਧਾਰਤ ਕਿਸਮ ਦੇ ਮੁੱਲ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਇਹ ਡਾਟਾਫ੍ਰੇਮ ਨਾਲੋਂ ਸਧਾਰਨ ਹੁੰਦਾ ਹੈ, ਪਰ ਇਹ ਵਧੇਰੇ ਗਣਿਤੀ ਕਾਰਵਾਈਆਂ ਪੇਸ਼ ਕਰਦਾ ਹੈ, ਅਤੇ ਘੱਟ ਓਵਰਹੈੱਡ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ ਕੁਝ ਹੋਰ ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਬਾਰੇ ਤੁਹਾਨੂੰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ: -* **[Matplotlib](https://matplotlib.org/)** ਡਾਟਾ ਵਿਜੁਅਲਾਈਜ਼ੇਸ਼ਨ ਅਤੇ ਗ੍ਰਾਫ ਪਲਾਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਲਾਇਬ੍ਰੇਰੀ ਹੈ -* **[SciPy](https://www.scipy.org/)** ਕੁਝ ਵਾਧੂ ਵਿਗਿਆਨਕ ਫੰਕਸ਼ਨਾਂ ਵਾਲੀ ਲਾਇਬ੍ਰੇਰੀ ਹੈ। ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਸੰਭਾਵਨਾ ਅਤੇ ਸਾਂਖੇਕੀ ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਹੋਏ ਇਸ ਲਾਇਬ੍ਰੇਰੀ ਨਾਲ ਮਿਲ ਚੁੱਕੇ ਹਾਂ +* **[Matplotlib](https://matplotlib.org/)** ਡਾਟਾ ਵਿਜ਼ੁਅਲਾਈਜ਼ੇਸ਼ਨ ਅਤੇ ਗ੍ਰਾਫ ਪਲਾਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਲਾਇਬ੍ਰੇਰੀ ਹੈ +* **[SciPy](https://www.scipy.org/)** ਕੁਝ ਵਾਧੂ ਵਿਗਿਆਨਕ ਫੰਕਸ਼ਨਾਂ ਵਾਲੀ ਲਾਇਬ੍ਰੇਰੀ ਹੈ। ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਸੰਭਾਵਨਾ ਅਤੇ ਅੰਕੜੇਵਾਰਤਾ ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਹੋਏ ਇਸ ਲਾਇਬ੍ਰੇਰੀ ਨਾਲ ਮਿਲ ਚੁੱਕੇ ਹਾਂ -ਇਹاں ਇੱਕ ਕੋਡ ਦਾ ਟੁਕੜਾ ਹੈ ਜੋ ਤੁਸੀਂ ਆਮ ਤੌਰ 'ਤੇ ਆਪਣੇ ਪਾਇਥਨ ਪ੍ਰੋਗਰਾਮ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਉਹਨਾਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਵਰਤਦੇ ਹੋ: +ਇਹ ਹੈ ਇੱਕ ਕੋਡ ਦਾ ਟੁਕੜਾ ਜੋ ਤੁਸੀਂ ਆਮ ਤੌਰ 'ਤੇ ਆਪਣੇ ਪਾਇਥਨ ਪ੍ਰੋਗਰਾਮ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਉਹਨਾਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਵਰਤਦੇ ਹੋ: ```python import numpy as np import pandas as pd @@ -59,11 +59,11 @@ Pandas ਕੁਝ ਮੂਲ ਧਾਰਨਾਵਾਂ 'ਤੇ ਕੇਂਦਰਿ ### ਸਿਰੀਜ਼ -**ਸਿਰੀਜ਼** ਮੁੱਲਾਂ ਦੀ ਇੱਕ ਲੜੀ ਹੈ, ਜੋ ਲਿਸਟ ਜਾਂ numpy ਐਰੇ ਦੇ ਸਮਾਨ ਹੈ। ਮੁੱਖ ਅੰਤਰ ਇਹ ਹੈ ਕਿ ਸਿਰੀਜ਼ ਵਿੱਚ ਇੱਕ **ਇੰਡੈਕਸ** ਵੀ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਜਦੋਂ ਅਸੀਂ ਸਿਰੀਜ਼ 'ਤੇ ਕਾਰਵਾਈ ਕਰਦੇ ਹਾਂ (ਜਿਵੇਂ ਕਿ ਉਹਨਾਂ ਨੂੰ ਜੋੜਨਾ), ਤਾਂ ਇੰਡੈਕਸ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ। ਇੰਡੈਕਸ ਸਧਾਰਨ ਪੰਗਤ ਨੰਬਰ (ਜਦੋਂ ਸਿਰੀਜ਼ ਨੂੰ ਲਿਸਟ ਜਾਂ ਐਰੇ ਤੋਂ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇਹ ਡਿਫਾਲਟ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਂਦਾ ਇੰਡੈਕਸ ਹੈ) ਜਿੰਨਾ ਸਧਾਰਨ ਹੋ ਸਕਦਾ ਹੈ, ਜਾਂ ਇਸ ਵਿੱਚ ਜਟਿਲ ਬਣਤਰ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਮਿਤੀ ਅੰਤਰਾਲ। +**ਸਿਰੀਜ਼** ਮੁੱਲਾਂ ਦੀ ਇੱਕ ਲੜੀ ਹੈ, ਜੋ ਸੂਚੀ ਜਾਂ numpy ਐਰੇ ਦੇ ਸਮਾਨ ਹੈ। ਮੁੱਖ ਅੰਤਰ ਇਹ ਹੈ ਕਿ ਸਿਰੀਜ਼ ਵਿੱਚ ਇੱਕ **ਸੂਚਕ** ਵੀ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਜਦੋਂ ਅਸੀਂ ਸਿਰੀਜ਼ 'ਤੇ ਕਾਰਵਾਈ ਕਰਦੇ ਹਾਂ (ਜਿਵੇਂ ਕਿ ਉਹਨਾਂ ਨੂੰ ਜੋੜਨਾ), ਤਾਂ ਸੂਚਕ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ। ਸੂਚਕ ਸਧਾਰਨ ਪੰਗਤ ਨੰਬਰ (ਜਦੋਂ ਸੂਚੀ ਜਾਂ ਐਰੇ ਤੋਂ ਸਿਰੀਜ਼ ਬਣਾਈ ਜਾਂਦੀ ਹੈ ਤਾਂ ਇਹ ਡਿਫਾਲਟ ਸੂਚਕ ਹੁੰਦਾ ਹੈ) ਜਿਵੇਂ ਸਧਾਰਨ ਹੋ ਸਕਦਾ ਹੈ, ਜਾਂ ਇਸ ਵਿੱਚ ਜਟਿਲ ਬਣਤਰ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਮਿਤੀ ਅੰਤਰਾਲ। -> **ਨੋਟ**: ਸਾਥੀ ਨੋਟਬੁੱਕ [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb) ਵਿੱਚ ਕੁਝ ਸ਼ੁਰੂਆਤੀ Pandas ਕੋਡ ਸ਼ਾਮਲ ਹੈ। ਅਸੀਂ ਇੱਥੇ ਕੁਝ ਉਦਾਹਰਣ outline ਕਰਦੇ ਹਾਂ, ਅਤੇ ਤੁਸੀਂ ਪੂਰੀ ਨੋਟਬੁੱਕ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸਵਾਗਤ ਕਰਦੇ ਹੋ। +> **ਨੋਟ**: Pandas ਦੇ ਕੁਝ ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਸਾਥੀ ਨੋਟਬੁੱਕ [`notebook.ipynb`](notebook.ipynb) ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ। ਅਸੀਂ ਇੱਥੇ ਕੁਝ ਉਦਾਹਰਣ outline ਕਰਦੇ ਹਾਂ, ਅਤੇ ਤੁਸੀਂ ਪੂਰੀ ਨੋਟਬੁੱਕ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸਵਾਗਤ ਕਰਦੇ ਹੋ। -ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਵਿਚਾਰ ਕਰੋ: ਅਸੀਂ ਆਪਣੇ ਆਈਸ-ਕ੍ਰੀਮ ਸਪਾਟ ਦੀ ਵਿਕਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਆਓ ਕੁਝ ਸਮਾਂ ਅੰਤਰਾਲ ਲਈ ਵਿਕਰੀ ਦੇ ਨੰਬਰਾਂ ਦੀ ਇੱਕ ਸਿਰੀਜ਼ ਬਣਾਈਏ (ਹਰ ਦਿਨ ਵੇਚੇ ਗਏ ਆਈਟਮਾਂ ਦੀ ਗਿਣਤੀ): +ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਵਿਚਾਰ ਕਰੋ: ਅਸੀਂ ਆਪਣੇ ਆਈਸ-ਕ੍ਰੀਮ ਸਪਾਟ ਦੀ ਵਿਕਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਆਓ ਕੁਝ ਸਮੇਂ ਦੀ ਮਿਆਦ ਲਈ ਵਿਕਰੀ ਦੇ ਨੰਬਰਾਂ ਦੀ ਇੱਕ ਸਿਰੀਜ਼ ਬਣਾਈਏ (ਹਰ ਦਿਨ ਵੇਚੇ ਗਏ ਆਈਟਮਾਂ ਦੀ ਗਿਣਤੀ): ```python start_date = "Jan 1, 2020" @@ -73,9 +73,9 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![ਟਾਈਮ ਸਿਰੀਜ਼ ਪਲਾਟ](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![ਟਾਈਮ ਸਿਰੀਜ਼ ਪਲਾਟ](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.pa.png) -ਹੁਣ ਮੰਨ ਲਓ ਕਿ ਹਰ ਹਫ਼ਤੇ ਅਸੀਂ ਦੋਸਤਾਂ ਲਈ ਇੱਕ ਪਾਰਟੀ ਦਾ ਆਯੋਜਨ ਕਰਦੇ ਹਾਂ, ਅਤੇ ਪਾਰਟੀ ਲਈ 10 ਪੈਕ ਆਈਸ-ਕ੍ਰੀਮ ਵਾਧੂ ਲੈਂਦੇ ਹਾਂ। ਅਸੀਂ ਇਹ ਦਿਖਾਉਣ ਲਈ ਹਫ਼ਤੇ ਦੁਆਰਾ ਇੰਡੈਕਸ ਕੀਤੀ ਹੋਈ ਇੱਕ ਹੋਰ ਸਿਰੀਜ਼ ਬਣਾਉਣ ਲਈ ਸਕਦੇ ਹਾਂ: +ਹੁਣ ਮੰਨ ਲਓ ਕਿ ਹਰ ਹਫ਼ਤੇ ਅਸੀਂ ਦੋਸਤਾਂ ਲਈ ਇੱਕ ਪਾਰਟੀ ਦਾ ਆਯੋਜਨ ਕਰਦੇ ਹਾਂ, ਅਤੇ ਪਾਰਟੀ ਲਈ 10 ਪੈਕ ਆਈਸ-ਕ੍ਰੀਮ ਵਾਧੂ ਲੈਂਦੇ ਹਾਂ। ਅਸੀਂ ਹਫ਼ਤੇ ਦੇ ਸੂਚਕ ਦੁਆਰਾ ਇੱਕ ਹੋਰ ਸਿਰੀਜ਼ ਬਣਾਉਣ ਲਈ ਇਹ ਦਿਖਾ ਸਕਦੇ ਹਾਂ: ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) ``` @@ -84,26 +84,26 @@ additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W" total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![ਟਾਈਮ ਸਿਰੀਜ਼ ਪਲਾਟ](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![ਟਾਈਮ ਸਿਰੀਜ਼ ਪਲਾਟ](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.pa.png) -> **ਨੋਟ** ਕਿ ਅਸੀਂ ਸਧਾਰਨ syntax `total_items+additional_items` ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ। ਜੇ ਅਸੀਂ ਕਰਦੇ, ਤਾਂ ਸਾਨੂੰ resulting ਸਿਰੀਜ਼ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ `NaN` (*Not a Number*) ਮੁੱਲ ਮਿਲਦੇ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ `additional_items` ਸਿਰੀਜ਼ ਵਿੱਚ ਕੁਝ ਇੰਡੈਕਸ ਪਾਇੰਟਾਂ ਲਈ ਮੁੱਲ ਗੁੰਮ ਹਨ, ਅਤੇ `Nan` ਨੂੰ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਨਾਲ ਜੋੜਨਾ `NaN` ਦੇ ਨਤੀਜੇ ਵਿੱਚ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ ਅਸੀਂ ਜੋੜਦੇ ਸਮੇਂ `fill_value` ਪੈਰਾਮੀਟਰ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। +> **ਨੋਟ** ਕਿ ਅਸੀਂ ਸਧਾਰਨ syntax `total_items+additional_items` ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ। ਜੇ ਅਸੀਂ ਕਰਦੇ, ਤਾਂ ਸਾਨੂੰ resulting ਸਿਰੀਜ਼ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ `NaN` (*Not a Number*) ਮੁੱਲ ਮਿਲਦੇ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ `additional_items` ਸਿਰੀਜ਼ ਵਿੱਚ ਕੁਝ ਸੂਚਕ ਬਿੰਦੂਆਂ ਲਈ ਮੁੱਲ ਗੁੰਮ ਹਨ, ਅਤੇ `Nan` ਨੂੰ ਕਿਸੇ ਵੀ ਚੀਜ਼ ਵਿੱਚ ਜੋੜਨਾ `NaN` ਦੇ ਨਤੀਜੇ ਵਿੱਚ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ ਅਸੀਂ ਜੋੜਦੇ ਸਮੇਂ `fill_value` ਪੈਰਾਮੀਟਰ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। -ਟਾਈਮ ਸਿਰੀਜ਼ ਨਾਲ, ਅਸੀਂ ਵੱਖ-ਵੱਖ ਸਮਾਂ ਅੰਤਰਾਲਾਂ ਨਾਲ ਸਿਰੀਜ਼ ਨੂੰ **resample** ਵੀ ਕਰ ਸਕਦੇ ਹਾਂ। ਉਦਾਹਰਣ ਲਈ, ਮੰਨ ਲਓ ਕਿ ਅਸੀਂ ਮਹੀਨਾਵਾਰ ਵਿਕਰੀ ਦੀ ਮੀਨ ਮਾਤਰਾ ਦੀ ਗਣਨਾ ਕਰਨੀ ਚਾਹੁੰਦੇ ਹਾਂ। ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ: +ਟਾਈਮ ਸਿਰੀਜ਼ ਨਾਲ, ਅਸੀਂ ਵੱਖ-ਵੱਖ ਸਮੇਂ ਦੇ ਅੰਤਰਾਲਾਂ ਨਾਲ ਸਿਰੀਜ਼ ਨੂੰ **resample** ਵੀ ਕਰ ਸਕਦੇ ਹਾਂ। ਉਦਾਹਰਣ ਲਈ, ਮੰਨ ਲਓ ਕਿ ਅਸੀਂ ਮਹੀਨਾਵਾਰ mean ਵਿਕਰੀ ਦੀ ਮਾਤਰਾ ਗਣਨਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![ਮਹੀਨਾਵਾਰ ਟਾਈਮ ਸਿਰੀਜ਼ ਐਵਰੇਜ](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![ਮਹੀਨਾਵਾਰ ਟਾਈਮ ਸਿਰੀਜ਼ ਐਵਰੇਜ](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.pa.png) -### ਡਾਟਾਫਰੇਮ +### ਡਾਟਾਫ੍ਰੇਮ -ਡਾਟਾਫਰੇਮ ਅਸਲ ਵਿੱਚ ਇੱਕੋ ਜਿਹੇ ਇੰਡੈਕਸ ਵਾਲੀਆਂ ਸਿਰੀਜ਼ਾਂ ਦਾ ਇੱਕ ਸੰਗ੍ਰਹਿ ਹੈ। ਅਸੀਂ ਕਈ ਸਿਰੀਜ਼ਾਂ ਨੂੰ ਇਕੱਠੇ ਕਰਕੇ ਡਾਟਾਫਰੇਮ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹਾਂ: +ਡਾਟਾਫ੍ਰੇਮ ਅਸਲ ਵਿੱਚ ਇੱਕੋ ਸੂਚਕ ਵਾਲੀਆਂ ਕਈ ਸਿਰੀਜ਼ਾਂ ਦਾ ਸੰਗ੍ਰਹਿ ਹੈ। ਅਸੀਂ ਕਈ ਸਿਰੀਜ਼ਾਂ ਨੂੰ ਇਕੱਠੇ ਕਰਕੇ ਡਾਟਾਫ੍ਰੇਮ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹਾਂ: ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) df = pd.DataFrame([a,b]) ``` -ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਇੱਕ ਹੋਰਿਜ਼ਾਂਟਲ ਟੇਬਲ ਬਣਾਏਗਾ: +ਇਹ ਹੇਠਾਂ ਦਿੱਤੇ ਜਿਵੇਂ ਇੱਕ ਹੋਰਿਜ਼ਾਂਟਲ ਟੇਬਲ ਬਣਾਏਗਾ: | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | | --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | @@ -113,7 +113,7 @@ df = pd.DataFrame([a,b]) ```python df = pd.DataFrame({ 'A' : a, 'B' : b }) ``` -ਇਹ ਸਾਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਇੱਕ ਟੇਬਲ ਦੇਵੇਗਾ: +ਇਹ ਸਾਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਜਿਵੇਂ ਇੱਕ ਟੇਬਲ ਦੇਵੇਗਾ: | | A | B | | --- | --- | ------ | @@ -127,80 +127,78 @@ df = pd.DataFrame({ 'A' : a, 'B' : b }) | 7 | 8 | very | | 8 | 9 | much | -**ਨੋਟ** ਕਿ ਅਸੀਂ ਪਿਛਲੀ ਟੇਬਲ ਨੂੰ ਟ੍ਰਾਂਸਪੋਜ਼ ਕਰਕੇ ਵੀ ਇਹ ਟੇਬਲ ਲੇਆਉਟ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ਲਿਖ ਕੇ +**ਨੋਟ** ਕਿ ਅਸੀਂ ਪਿਛਲੇ ਟੇਬਲ ਨੂੰ ਟ੍ਰਾਂਸਪੋਜ਼ ਕਰਕੇ ਵੀ ਇਹ ਟੇਬਲ ਲੇਆਉਟ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ਲਿਖ ਕੇ ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) ``` -ਇੱਥੇ `.T` ਦਾ ਮਤਲਬ ਹੈ ਡਾਟਾਫਰੇਮ ਨੂੰ ਟ੍ਰਾਂਸਪੋਜ਼ ਕਰਨ ਦੀ ਕਾਰਵਾਈ, ਯਾਨੀ ਰੋਜ਼ ਅਤੇ ਕਾਲਮਾਂ ਨੂੰ ਬਦਲਣਾ, ਅਤੇ `rename` ਕਾਰਵਾਈ ਸਾਨੂੰ ਪਿਛਲੇ ਉਦਾਹਰਣ ਨਾਲ ਮੇਲ ਖਾਣ ਲਈ ਕਾਲਮਾਂ ਦੇ ਨਾਮ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। +ਇੱਥੇ `.T` ਦਾ ਮਤਲਬ ਹੈ ਡਾਟਾਫ੍ਰੇਮ ਨੂੰ ਟ੍ਰਾਂਸਪੋਜ਼ ਕਰਨ ਦੀ ਕਾਰਵਾਈ, ਯਾਨੀ ਪੰਗਤਾਂ ਅਤੇ ਕਾਲਮਾਂ ਨੂੰ ਬਦਲਣਾ, ਅਤੇ `rename` ਕਾਰਵਾਈ ਸਾਨੂੰ ਕਾਲਮਾਂ ਨੂੰ ਪਿਛਲੇ ਉਦਾਹਰਣ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਨਾਮ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। -ਇੱਥੇ ਕੁਝ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਕਾਰਵਾਈਆਂ ਹਨ ਜੋ ਅਸੀਂ ਡਾਟਾਫਰੇਮ 'ਤੇ ਕਰ ਸਕਦੇ ਹਾਂ: +ਇੱਥੇ ਕੁਝ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਕਾਰਵਾਈਆਂ ਹਨ ਜੋ ਅਸੀਂ ਡਾਟਾਫ੍ਰੇਮ 'ਤੇ ਕਰ ਸਕਦੇ ਹਾਂ: -**ਕਾਲਮ ਚੋਣ**। ਅਸੀਂ `df['A']` ਲਿਖ ਕੇ ਵਿਅਕਤੀਗਤ ਕਾਲਮਾਂ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹਾਂ - ਇਹ ਕਾਰਵਾਈ ਇੱਕ ਸਿਰੀਜ਼ ਨੂੰ ਵਾਪਸ ਕਰਦੀ ਹੈ। ਅਸੀਂ `df[['B','A']]` ਲਿਖ ਕੇ ਕਾਲਮਾਂ ਦੇ ਇੱਕ subset ਨੂੰ ਇੱਕ ਹੋਰ ਡਾਟਾਫਰੇਮ ਵਿੱਚ ਚੁਣ ਸਕਦੇ ਹਾਂ - ਇਹ ਇੱਕ ਹੋਰ ਡਾਟਾਫਰੇਮ ਵਾਪਸ ਕਰਦਾ ਹੈ। +**ਕਾਲਮ ਚੋਣ**। ਅਸੀਂ `df['A']` ਲਿਖ ਕੇ ਵਿਅਕਤੀਗਤ ਕਾਲਮ ਚੁਣ ਸਕਦੇ ਹਾਂ - ਇਹ ਕਾਰਵਾਈ ਇੱਕ ਸਿਰੀਜ਼ ਨੂੰ ਵਾਪਸ ਕਰਦੀ ਹੈ। ਅਸੀਂ `df[['B','A']]` ਲਿਖ ਕੇ ਕਾਲਮਾਂ ਦੇ ਇੱਕ subset ਨੂੰ ਇੱਕ ਹੋਰ ਡਾਟਾਫ੍ਰੇਮ ਵਿੱਚ ਚੁਣ ਸਕਦੇ ਹਾਂ - ਇਹ ਇੱਕ ਹੋਰ ਡਾਟਾਫ੍ਰੇਮ ਵਾਪਸ ਕਰਦਾ ਹੈ। -**ਕੇਵਲ ਕੁਝ ਰੋਜ਼ ਨੂੰ ਫਿਲਟਰ ਕਰਨਾ**। ਉਦਾਹਰਣ ਲਈ, ਕੇਵਲ ਉਹ ਰੋਜ਼ ਛੱਡਣ ਲਈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਕਾਲਮ `A` 5 ਤੋਂ ਵੱਧ ਹੈ, ਅਸੀਂ `df[df['A']>5]` ਲਿਖ ਸਕਦੇ ਹਾਂ। - -> **ਨੋਟ**: ਫਿਲਟਰਿੰਗ ਦਾ ਤਰੀ -ਸਾਨੂੰ ਵੇਖਿਆ ਕਿ Python ਦੇ objects ਤੋਂ Series ਅਤੇ DataFrames ਬਣਾਉਣਾ ਕਿੰਨਾ ਆਸਾਨ ਹੈ। ਹਾਲਾਂਕਿ, ਡਾਟਾ ਆਮ ਤੌਰ 'ਤੇ ਟੈਕਸਟ ਫਾਈਲ ਜਾਂ Excel ਟੇਬਲ ਦੇ ਰੂਪ ਵਿੱਚ ਆਉਂਦਾ ਹੈ। ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, Pandas ਸਾਨੂੰ ਡਿਸਕ ਤੋਂ ਡਾਟਾ ਲੋਡ ਕਰਨ ਦਾ ਸਧਾਰਨ ਤਰੀਕਾ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, CSV ਫਾਈਲ ਪੜ੍ਹਨਾ ਇਸ ਤਰ੍ਹਾਂ ਆਸਾਨ ਹੈ: +**ਕੇਵਲ ਕੁਝ ਪੰਗਤਾਂ ਨੂੰ ਫਿਲਟਰ ਕਰਨਾ**। ਉਦਾਹਰਣ ਲਈ, ਕੇਵਲ ਉਹ ਪੰਗਤਾਂ ਛੱਡਣ ਲਈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਕਾਲਮ `A` 5 ਤੋਂ ਵੱਧ ਹੈ, ਅਸੀਂ ਲ +ਅਸੀਂ ਵੇਖਿਆ ਹੈ ਕਿ Python ਆਬਜੈਕਟਾਂ ਤੋਂ Series ਅਤੇ DataFrames ਬਣਾਉਣਾ ਕਿੰਨਾ ਆਸਾਨ ਹੈ। ਹਾਲਾਂਕਿ, ਡਾਟਾ ਆਮ ਤੌਰ 'ਤੇ ਟੈਕਸਟ ਫਾਈਲ ਜਾਂ Excel ਟੇਬਲ ਦੇ ਰੂਪ ਵਿੱਚ ਆਉਂਦਾ ਹੈ। ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, Pandas ਸਾਨੂੰ ਡਿਸਕ ਤੋਂ ਡਾਟਾ ਲੋਡ ਕਰਨ ਦਾ ਇੱਕ ਸਧਾਰਨ ਤਰੀਕਾ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, CSV ਫਾਈਲ ਪੜ੍ਹਨਾ ਇਸ ਤਰ੍ਹਾਂ ਆਸਾਨ ਹੈ: ```python df = pd.read_csv('file.csv') ``` -ਅਸੀਂ ਡਾਟਾ ਲੋਡ ਕਰਨ ਦੇ ਹੋਰ ਉਦਾਹਰਣ ਵੇਖਾਂਗੇ, ਜਿਸ ਵਿੱਚ ਬਾਹਰੀ ਵੈਬਸਾਈਟਾਂ ਤੋਂ ਡਾਟਾ ਲੈਣਾ ਵੀ ਸ਼ਾਮਲ ਹੈ, "Challenge" ਸੈਕਸ਼ਨ ਵਿੱਚ। +ਅਸੀਂ ਡਾਟਾ ਲੋਡ ਕਰਨ ਦੇ ਹੋਰ ਉਦਾਹਰਣ ਵੇਖਾਂਗੇ, ਜਿਸ ਵਿੱਚ ਬਾਹਰੀ ਵੈਬਸਾਈਟਾਂ ਤੋਂ ਡਾਟਾ ਲੈਣਾ ਸ਼ਾਮਲ ਹੈ, "Challenge" ਸੈਕਸ਼ਨ ਵਿੱਚ। ### ਪ੍ਰਿੰਟਿੰਗ ਅਤੇ ਪਲੌਟਿੰਗ -ਇੱਕ Data Scientist ਨੂੰ ਅਕਸਰ ਡਾਟਾ ਦੀ ਜਾਂਚ ਕਰਨੀ ਪੈਂਦੀ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਵਿਜੁਅਲਾਈਜ਼ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜਦੋਂ DataFrame ਵੱਡਾ ਹੁੰਦਾ ਹੈ, ਅਕਸਰ ਸਾਨੂੰ ਸਿਰਫ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੁੰਦਾ ਹੈ ਕਿ ਅਸੀਂ ਸਭ ਕੁਝ ਠੀਕ ਕਰ ਰਹੇ ਹਾਂ, ਪਹਿਲੀਆਂ ਕੁਝ ਲਾਈਨਾਂ ਪ੍ਰਿੰਟ ਕਰਕੇ। ਇਹ `df.head()` ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ Jupyter Notebook ਤੋਂ ਚਲਾ ਰਹੇ ਹੋ, ਤਾਂ ਇਹ DataFrame ਨੂੰ ਸੁੰਦਰ ਟੇਬਲਰ ਰੂਪ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕਰੇਗਾ। +ਇੱਕ Data Scientist ਨੂੰ ਅਕਸਰ ਡਾਟਾ ਦੀ ਜਾਂਚ ਕਰਨੀ ਪੈਂਦੀ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਵਿਜੁਅਲਾਈਜ਼ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜਦੋਂ DataFrame ਵੱਡਾ ਹੁੰਦਾ ਹੈ, ਅਕਸਰ ਅਸੀਂ ਸਿਰਫ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਅਸੀਂ ਸਭ ਕੁਝ ਠੀਕ ਕਰ ਰਹੇ ਹਾਂ, ਪਹਿਲੀਆਂ ਕੁਝ ਲਾਈਨਾਂ ਪ੍ਰਿੰਟ ਕਰਕੇ। ਇਹ `df.head()` ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ Jupyter Notebook ਤੋਂ ਚਲਾ ਰਹੇ ਹੋ, ਤਾਂ ਇਹ DataFrame ਨੂੰ ਇੱਕ ਸੁੰਦਰ ਟੇਬਲਰ ਰੂਪ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕਰੇਗਾ। -ਅਸੀਂ ਕੁਝ ਕਾਲਮਾਂ ਨੂੰ ਵਿਜੁਅਲਾਈਜ਼ ਕਰਨ ਲਈ `plot` ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਵੀ ਵੇਖੀ ਹੈ। ਜਦੋਂ ਕਿ `plot` ਕਈ ਕੰਮਾਂ ਲਈ ਬਹੁਤ ਹੀ ਲਾਭਦਾਇਕ ਹੈ ਅਤੇ `kind=` ਪੈਰਾਮੀਟਰ ਰਾਹੀਂ ਕਈ ਵੱਖ-ਵੱਖ ਗ੍ਰਾਫ ਕਿਸਮਾਂ ਨੂੰ ਸਹਾਰਾ ਦਿੰਦਾ ਹੈ, ਤੁਸੀਂ ਹਮੇਸ਼ਾ ਕੁਝ ਹੋਰ ਜਟਿਲ ਪਲੌਟ ਕਰਨ ਲਈ raw `matplotlib` ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਅਸੀਂ ਡਾਟਾ ਵਿਜੁਅਲਾਈਜ਼ੇਸ਼ਨ ਨੂੰ ਵਿਸਥਾਰ ਵਿੱਚ ਵੱਖਰੇ ਕੋਰਸ ਪਾਠਾਂ ਵਿੱਚ ਕਵਰ ਕਰਾਂਗੇ। +ਅਸੀਂ ਕੁਝ ਕਾਲਮਾਂ ਨੂੰ ਵਿਜੁਅਲਾਈਜ਼ ਕਰਨ ਲਈ `plot` ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਵੀ ਵੇਖੀ ਹੈ। ਜਦੋਂ ਕਿ `plot` ਕਈ ਕੰਮਾਂ ਲਈ ਬਹੁਤ ਹੀ ਲਾਭਦਾਇਕ ਹੈ ਅਤੇ `kind=` ਪੈਰਾਮੀਟਰ ਰਾਹੀਂ ਕਈ ਵੱਖ-ਵੱਖ ਗ੍ਰਾਫ ਕਿਸਮਾਂ ਨੂੰ ਸਹਾਰਾ ਦਿੰਦਾ ਹੈ, ਤੁਸੀਂ ਹਮੇਸ਼ਾ ਕੁਝ ਹੋਰ ਜਟਿਲ ਪਲੌਟ ਕਰਨ ਲਈ ਕੱਚੀ `matplotlib` ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਅਸੀਂ ਡਾਟਾ ਵਿਜੁਅਲਾਈਜ਼ੇਸ਼ਨ ਨੂੰ ਵਿਸਥਾਰ ਵਿੱਚ ਵੱਖਰੇ ਕੋਰਸ ਪਾਠਾਂ ਵਿੱਚ ਕਵਰ ਕਰਾਂਗੇ। ਇਹ ਝਲਕ Pandas ਦੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਸੰਕਲਪਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ, ਹਾਲਾਂਕਿ, ਲਾਇਬ੍ਰੇਰੀ ਬਹੁਤ ਹੀ ਸਮਰੱਥ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਇਸ ਨਾਲ ਕੀ ਕਰ ਸਕਦੇ ਹੋ ਇਸ ਦੀ ਕੋਈ ਸੀਮਾ ਨਹੀਂ ਹੈ! ਆਓ ਹੁਣ ਇਸ ਗਿਆਨ ਨੂੰ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਲਾਗੂ ਕਰੀਏ। ## 🚀 ਚੁਣੌਤੀ 1: COVID ਫੈਲਾਅ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ -ਪਹਿਲੀ ਸਮੱਸਿਆ ਜਿਸ 'ਤੇ ਅਸੀਂ ਧਿਆਨ ਦੇਵਾਂਗੇ, COVID-19 ਦੀ ਮਹਾਂਮਾਰੀ ਦੇ ਫੈਲਾਅ ਦਾ ਮਾਡਲ ਬਣਾਉਣਾ ਹੈ। ਇਸ ਲਈ, ਅਸੀਂ ਵੱਖ-ਵੱਖ ਦੇਸ਼ਾਂ ਵਿੱਚ ਸੰਕਰਮਿਤ ਵਿਅਕਤੀਆਂ ਦੀ ਗਿਣਤੀ ਦੇ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ, ਜੋ [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) ਦੁਆਰਾ [Johns Hopkins University](https://jhu.edu/) ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਡਾਟਾਸੈਟ [ਇਸ GitHub Repository](https://github.com/CSSEGISandData/COVID-19) ਵਿੱਚ ਉਪਲਬਧ ਹੈ। +ਪਹਿਲੀ ਸਮੱਸਿਆ ਜਿਸ 'ਤੇ ਅਸੀਂ ਧਿਆਨ ਦੇਵਾਂਗੇ, COVID-19 ਦੀ ਮਹਾਂਮਾਰੀ ਦੇ ਫੈਲਾਅ ਦਾ ਮਾਡਲ ਬਣਾਉਣਾ ਹੈ। ਇਸ ਨੂੰ ਕਰਨ ਲਈ, ਅਸੀਂ ਵੱਖ-ਵੱਖ ਦੇਸ਼ਾਂ ਵਿੱਚ ਸੰਕਰਮਿਤ ਵਿਅਕਤੀਆਂ ਦੀ ਗਿਣਤੀ ਦੇ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ, ਜੋ [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) ਦੁਆਰਾ [Johns Hopkins University](https://jhu.edu/) ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਡਾਟਾਸੈਟ [ਇਸ GitHub Repository](https://github.com/CSSEGISandData/COVID-19) ਵਿੱਚ ਉਪਲਬਧ ਹੈ। -ਜਦੋਂ ਕਿ ਅਸੀਂ ਡਾਟਾ ਨਾਲ ਨਿਪਟਣ ਦਾ ਤਰੀਕਾ ਦਿਖਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਸਲਾਹ ਦਿੰਦੇ ਹਾਂ ਕਿ [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) ਖੋਲ੍ਹੋ ਅਤੇ ਇਸਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਅੰਤ ਤੱਕ ਪੜ੍ਹੋ। ਤੁਸੀਂ ਸੈੱਲ ਚਲਾ ਸਕਦੇ ਹੋ ਅਤੇ ਕੁਝ ਚੁਣੌਤੀਆਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਅਸੀਂ ਤੁਹਾਡੇ ਲਈ ਅੰਤ ਵਿੱਚ ਛੱਡੀਆਂ ਹਨ। +ਜਦੋਂ ਕਿ ਅਸੀਂ ਡਾਟਾ ਨਾਲ ਨਿਪਟਣ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਸਲਾਹ ਦਿੰਦੇ ਹਾਂ ਕਿ [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) ਖੋਲ੍ਹੋ ਅਤੇ ਇਸਨੂੰ ਉੱਪਰ ਤੋਂ ਹੇਠਾਂ ਪੜ੍ਹੋ। ਤੁਸੀਂ ਸੈੱਲ ਚਲਾ ਸਕਦੇ ਹੋ ਅਤੇ ਕੁਝ ਚੁਣੌਤੀਆਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਅਸੀਂ ਤੁਹਾਡੇ ਲਈ ਅੰਤ ਵਿੱਚ ਛੱਡੀਆਂ ਹਨ। -![COVID ਫੈਲਾਅ](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![COVID ਫੈਲਾਅ](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.pa.png) -> ਜੇ ਤੁਹਾਨੂੰ Jupyter Notebook ਵਿੱਚ ਕੋਡ ਚਲਾਉਣ ਦਾ ਪਤਾ ਨਹੀਂ ਹੈ, ਤਾਂ [ਇਸ ਲੇਖ](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) ਨੂੰ ਵੇਖੋ। +> ਜੇ ਤੁਸੀਂ Jupyter Notebook ਵਿੱਚ ਕੋਡ ਚਲਾਉਣ ਦਾ ਤਰੀਕਾ ਨਹੀਂ ਜਾਣਦੇ, ਤਾਂ [ਇਸ ਲੇਖ](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) ਨੂੰ ਵੇਖੋ। ## ਅਸੰਰਚਿਤ ਡਾਟਾ ਨਾਲ ਕੰਮ ਕਰਨਾ -ਜਦੋਂ ਕਿ ਡਾਟਾ ਅਕਸਰ ਟੇਬਲਰ ਰੂਪ ਵਿੱਚ ਆਉਂਦਾ ਹੈ, ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ ਸਾਨੂੰ ਘੱਟ ਸੰਰਚਿਤ ਡਾਟਾ ਨਾਲ ਨਿਪਟਣਾ ਪੈਂਦਾ ਹੈ, ਉਦਾਹਰਣ ਲਈ, ਟੈਕਸਟ ਜਾਂ ਚਿੱਤਰ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਉੱਪਰ ਵੇਖੇ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ, ਸਾਨੂੰ ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ **ਸੰਰਚਿਤ** ਡਾਟਾ ਕੱਢਣਾ ਪੈਂਦਾ ਹੈ। ਇੱਥੇ ਕੁਝ ਉਦਾਹਰਣ ਹਨ: +ਜਦੋਂ ਕਿ ਡਾਟਾ ਅਕਸਰ ਟੇਬਲਰ ਰੂਪ ਵਿੱਚ ਆਉਂਦਾ ਹੈ, ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ ਸਾਨੂੰ ਘੱਟ ਸੰਗਠਿਤ ਡਾਟਾ ਨਾਲ ਨਿਪਟਣਾ ਪੈਂਦਾ ਹੈ, ਉਦਾਹਰਣ ਲਈ, ਟੈਕਸਟ ਜਾਂ ਚਿੱਤਰ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਉੱਪਰ ਵੇਖੇ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ, ਸਾਨੂੰ ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ **ਸੰਰਚਿਤ** ਡਾਟਾ ਕੱਢਣਾ ਪੈਂਦਾ ਹੈ। ਇੱਥੇ ਕੁਝ ਉਦਾਹਰਣ ਹਨ: * ਟੈਕਸਟ ਤੋਂ ਕੀਵਰਡ ਕੱਢਣਾ ਅਤੇ ਵੇਖਣਾ ਕਿ ਉਹ ਕੀਵਰਡ ਕਿੰਨੀ ਵਾਰ ਆਉਂਦੇ ਹਨ -* ਚਿੱਤਰ 'ਤੇ ਵਸਤੂਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਕੱਢਣ ਲਈ ਨਿਊਰਲ ਨੈਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਨਾ -* ਵੀਡੀਓ ਕੈਮਰਾ ਫੀਡ 'ਤੇ ਲੋਕਾਂ ਦੇ ਜਜ਼ਬਾਤਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ +* ਚਿੱਤਰ 'ਤੇ ਆਬਜੈਕਟਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਕੱਢਣ ਲਈ ਨਿਊਰਲ ਨੈਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਨਾ +* ਵੀਡੀਓ ਕੈਮਰਾ ਫੀਡ 'ਤੇ ਲੋਕਾਂ ਦੇ ਭਾਵਨਾਵਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ## 🚀 ਚੁਣੌਤੀ 2: COVID ਪੇਪਰਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ -ਇਸ ਚੁਣੌਤੀ ਵਿੱਚ, ਅਸੀਂ COVID ਮਹਾਂਮਾਰੀ ਦੇ ਵਿਸ਼ੇ ਨੂੰ ਜਾਰੀ ਰੱਖਾਂਗੇ ਅਤੇ ਇਸ ਵਿਸ਼ੇ 'ਤੇ ਵਿਗਿਆਨਕ ਪੇਪਰਾਂ ਦੀ ਪ੍ਰੋਸੈਸਿੰਗ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) ਵਿੱਚ COVID 'ਤੇ 7000 ਤੋਂ ਵੱਧ (ਇਸ ਲੇਖਨ ਦੇ ਸਮੇਂ) ਪੇਪਰਾਂ ਉਪਲਬਧ ਹਨ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਟਾਡਾਟਾ ਅਤੇ ਐਬਸਟਰੈਕਟ ਸ਼ਾਮਲ ਹਨ (ਅਤੇ ਲਗਭਗ ਅੱਧੇ ਪੇਪਰਾਂ ਲਈ ਪੂਰਾ ਟੈਕਸਟ ਵੀ ਉਪਲਬਧ ਹੈ)। +ਇਸ ਚੁਣੌਤੀ ਵਿੱਚ, ਅਸੀਂ COVID ਮਹਾਂਮਾਰੀ ਦੇ ਵਿਸ਼ੇ ਨੂੰ ਜਾਰੀ ਰੱਖਾਂਗੇ ਅਤੇ ਇਸ ਵਿਸ਼ੇ 'ਤੇ ਵਿਗਿਆਨਕ ਪੇਪਰਾਂ ਦੇ ਪ੍ਰੋਸੈਸਿੰਗ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) ਵਿੱਚ COVID 'ਤੇ 7000 ਤੋਂ ਵੱਧ (ਇਸ ਲੇਖਨ ਦੇ ਸਮੇਂ) ਪੇਪਰ ਉਪਲਬਧ ਹਨ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਟਾਡਾਟਾ ਅਤੇ ਐਬਸਟਰੈਕਟ ਸ਼ਾਮਲ ਹਨ (ਅਤੇ ਲਗਭਗ ਅੱਧੇ ਪੇਪਰਾਂ ਲਈ ਪੂਰਾ ਟੈਕਸਟ ਵੀ ਉਪਲਬਧ ਹੈ)। -ਇਸ ਡਾਟਾਸੈਟ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਦਾ ਪੂਰਾ ਉਦਾਹਰਣ [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) ਕੌਗਨਿਟਿਵ ਸੇਵਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ [ਇਸ ਬਲੌਗ ਪੋਸਟ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) ਵਿੱਚ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਅਸੀਂ ਇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਦਾ ਸਰਲ ਰੂਪ ਚਰਚਾ ਕਰਾਂਗੇ। +ਇਸ ਡਾਟਾਸੈਟ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਦਾ ਪੂਰਾ ਉਦਾਹਰਣ [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) ਕੌਗਨਿਟਿਵ ਸਰਵਿਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ [ਇਸ ਬਲੌਗ ਪੋਸਟ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) ਵਿੱਚ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਅਸੀਂ ਇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਦਾ ਸਰਲ ਰੂਪ ਚਰਚਾ ਕਰਾਂਗੇ। -> **NOTE**: ਅਸੀਂ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਡਾਟਾਸੈਟ ਦੀ ਕਾਪੀ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੇ। ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ਫਾਈਲ [ਇਸ Kaggle ਡਾਟਾਸੈਟ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) ਤੋਂ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋ ਸਕਦੀ ਹੈ। Kaggle ਨਾਲ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਤੋਂ ਬਿਨਾਂ [ਇਥੋਂ](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ਡਾਟਾਸੈਟ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਇਸ ਵਿੱਚ ਮੈਟਾਡਾਟਾ ਫਾਈਲ ਦੇ ਨਾਲ-ਨਾਲ ਸਾਰੇ ਪੂਰੇ ਟੈਕਸਟ ਸ਼ਾਮਲ ਹੋਣਗੇ। +> **NOTE**: ਅਸੀਂ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਡਾਟਾਸੈਟ ਦੀ ਕਾਪੀ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੇ। ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ਫਾਈਲ [ਇਸ Kaggle ਡਾਟਾਸੈਟ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) ਤੋਂ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। Kaggle ਨਾਲ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਤੋਂ ਬਿਨਾਂ [ਇਥੋਂ](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ਡਾਟਾਸੈਟ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਇਸ ਵਿੱਚ ਮੈਟਾਡਾਟਾ ਫਾਈਲ ਦੇ ਨਾਲ ਸਾਰੇ ਪੂਰੇ ਟੈਕਸਟ ਸ਼ਾਮਲ ਹੋਣਗੇ। -[`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) ਖੋਲ੍ਹੋ ਅਤੇ ਇਸਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਅੰਤ ਤੱਕ ਪੜ੍ਹੋ। ਤੁਸੀਂ ਸੈੱਲ ਚਲਾ ਸਕਦੇ ਹੋ ਅਤੇ ਕੁਝ ਚੁਣੌਤੀਆਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਅਸੀਂ ਤੁਹਾਡੇ ਲਈ ਅੰਤ ਵਿੱਚ ਛੱਡੀਆਂ ਹਨ। +[`notebook-papers.ipynb`](notebook-papers.ipynb) ਖੋਲ੍ਹੋ ਅਤੇ ਇਸਨੂੰ ਉੱਪਰ ਤੋਂ ਹੇਠਾਂ ਪੜ੍ਹੋ। ਤੁਸੀਂ ਸੈੱਲ ਚਲਾ ਸਕਦੇ ਹੋ ਅਤੇ ਕੁਝ ਚੁਣੌਤੀਆਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਅਸੀਂ ਤੁਹਾਡੇ ਲਈ ਅੰਤ ਵਿੱਚ ਛੱਡੀਆਂ ਹਨ। -![Covid ਮੈਡੀਕਲ ਇਲਾਜ](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![Covid ਮੈਡੀਕਲ ਇਲਾਜ](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.pa.png) ## ਚਿੱਤਰ ਡਾਟਾ ਦੀ ਪ੍ਰੋਸੈਸਿੰਗ -ਹਾਲ ਹੀ ਵਿੱਚ, ਬਹੁਤ ਹੀ ਸ਼ਕਤੀਸ਼ਾਲੀ AI ਮਾਡਲ ਵਿਕਸਿਤ ਕੀਤੇ ਗਏ ਹਨ ਜੋ ਚਿੱਤਰਾਂ ਨੂੰ ਸਮਝਣ ਦੀ ਯੋਗਤਾ ਦਿੰਦੇ ਹਨ। ਕਈ ਕੰਮ ਹਨ ਜੋ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਨਿਊਰਲ ਨੈਟਵਰਕ ਜਾਂ ਕਲਾਉਡ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਕੁਝ ਉਦਾਹਰਣ ਸ਼ਾਮਲ ਹਨ: +ਹਾਲ ਹੀ ਵਿੱਚ, ਬਹੁਤ ਹੀ ਸ਼ਕਤੀਸ਼ਾਲੀ AI ਮਾਡਲ ਵਿਕਸਿਤ ਕੀਤੇ ਗਏ ਹਨ ਜੋ ਚਿੱਤਰਾਂ ਨੂੰ ਸਮਝਣ ਦੀ ਯੋਗਤਾ ਦਿੰਦੇ ਹਨ। ਕਈ ਕੰਮ ਹਨ ਜੋ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਨਿਊਰਲ ਨੈਟਵਰਕ ਜਾਂ ਕਲਾਉਡ ਸਰਵਿਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਕੁਝ ਉਦਾਹਰਣ ਸ਼ਾਮਲ ਹਨ: -* **ਚਿੱਤਰ ਵਰਗੀਕਰਨ**, ਜੋ ਤੁਹਾਨੂੰ ਚਿੱਤਰ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਵਰਗਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਤੁਸੀਂ ਆਸਾਨੀ ਨਾਲ [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) ਵਰਗੇ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਮਾਡਲ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹੋ। -* **ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ**, ਚਿੱਤਰ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ। [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ਵਰਗੀਆਂ ਸੇਵਾਵਾਂ ਕਈ ਆਮ ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਤੁਸੀਂ [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) ਮਾਡਲ ਨੂੰ ਕੁਝ ਵਿਸ਼ੇਸ਼ ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹੋ। -* **ਚਿਹਰਾ ਪਛਾਣ**, ਜਿਸ ਵਿੱਚ ਉਮਰ, ਲਿੰਗ ਅਤੇ ਜਜ਼ਬਾਤਾਂ ਦੀ ਪਛਾਣ ਸ਼ਾਮਲ ਹੈ। ਇਹ [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ਰਾਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। +* **ਚਿੱਤਰ ਵਰਗੀਕਰਨ**, ਜੋ ਤੁਹਾਨੂੰ ਚਿੱਤਰ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਵਰਗਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਤੁਸੀਂ ਆਸਾਨੀ ਨਾਲ [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) ਵਰਗੇ ਸਰਵਿਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਮਾਡਲ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹੋ। +* **ਆਬਜੈਕਟ ਡਿਟੈਕਸ਼ਨ** ਚਿੱਤਰ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਆਬਜੈਕਟਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ। [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ਵਰਗੇ ਸਰਵਿਸ ਕਈ ਆਮ ਆਬਜੈਕਟਾਂ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦੇ ਹਨ, ਅਤੇ ਤੁਸੀਂ [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) ਮਾਡਲ ਨੂੰ ਕੁਝ ਵਿਸ਼ੇਸ਼ ਆਬਜੈਕਟਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹੋ। +* **ਚਿਹਰਾ ਪਛਾਣ**, ਜਿਸ ਵਿੱਚ ਉਮਰ, ਲਿੰਗ ਅਤੇ ਭਾਵਨਾਵਾਂ ਦੀ ਪਛਾਣ ਸ਼ਾਮਲ ਹੈ। ਇਹ [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ਰਾਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। -ਇਹ ਸਾਰੀਆਂ ਕਲਾਉਡ ਸੇਵਾਵਾਂ ਨੂੰ [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਡਾਟਾ ਐਕਸਪਲੋਰੇਸ਼ਨ ਵਰਕਫਲੋ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। +ਇਹ ਸਾਰੇ ਕਲਾਉਡ ਸਰਵਿਸਾਂ ਨੂੰ [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਡਾਟਾ ਐਕਸਪਲੋਰੇਸ਼ਨ ਵਰਕਫਲੋ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇੱਥੇ ਚਿੱਤਰ ਡਾਟਾ ਸਰੋਤਾਂ ਤੋਂ ਡਾਟਾ ਦੀ ਜਾਂਚ ਕਰਨ ਦੇ ਕੁਝ ਉਦਾਹਰਣ ਹਨ: -* ਬਲੌਗ ਪੋਸਟ [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) ਵਿੱਚ ਅਸੀਂ Instagram ਫੋਟੋਆਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਾਂ, ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋਏ ਕਿ ਕਿਸ ਚਿੱਤਰ ਨੂੰ ਲੋਕ ਵਧੇਰੇ ਲਾਈਕ ਕਰਦੇ ਹਨ। ਅਸੀਂ ਪਹਿਲਾਂ [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਚਿੱਤਰਾਂ ਤੋਂ ਜਿੰਨੀ ਸੰਭਵ ਹੋ ਸਕੇ ਜਾਣਕਾਰੀ ਕੱਢਦੇ ਹਾਂ, ਅਤੇ ਫਿਰ [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਿਆਖਿਆਯੋਗ ਮਾਡਲ ਬਣਾਉਂਦੇ ਹਾਂ। -* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ਵਿੱਚ ਅਸੀਂ [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਵੈਂਟਾਂ ਦੀਆਂ ਫੋਟੋਆਂ 'ਤੇ ਲੋਕਾਂ ਦੇ ਜਜ਼ਬਾਤਾਂ ਨੂੰ ਕੱਢਦੇ ਹਾਂ, ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋਏ ਕਿ ਲੋਕਾਂ ਨੂੰ ਖੁਸ਼ ਕੀ ਕਰਦਾ ਹੈ। +* [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) ਬਲੌਗ ਪੋਸਟ ਵਿੱਚ ਅਸੀਂ Instagram ਫੋਟੋਆਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਾਂ, ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋਏ ਕਿ ਕਿਸ ਚਿੱਤਰ ਨੂੰ ਲੋਕ ਵਧੇਰੇ ਲਾਈਕ ਦਿੰਦੇ ਹਨ। ਅਸੀਂ ਪਹਿਲਾਂ [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਚਿੱਤਰਾਂ ਤੋਂ ਜਿੰਨੀ ਸੰਭਵ ਹੋ ਸਕੇ ਜਾਣਕਾਰੀ ਕੱਢਦੇ ਹਾਂ, ਅਤੇ ਫਿਰ [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਿਆਖਿਆਯੋਗ ਮਾਡਲ ਬਣਾਉਂਦੇ ਹਾਂ। +* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ਵਿੱਚ ਅਸੀਂ [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਵੈਂਟਾਂ ਦੀਆਂ ਫੋਟੋਆਂ 'ਤੇ ਲੋਕਾਂ ਦੀਆਂ ਭਾਵਨਾਵਾਂ ਕੱਢਦੇ ਹਾਂ, ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋਏ ਕਿ ਲੋਕਾਂ ਨੂੰ ਖੁਸ਼ ਕੀ ਕਰਦਾ ਹੈ। ## ਨਿਸਕਰਸ਼ -ਚਾਹੇ ਤੁਹਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਸੰਰਚਿਤ ਜਾਂ ਅਸੰਰਚਿਤ ਡਾਟਾ ਹੈ, Python ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤੁਸੀਂ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਸਮਝਣ ਨਾਲ ਸੰਬੰਧਿਤ ਸਾਰੇ ਕਦਮ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਸ਼ਾਇਦ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਸਭ ਤੋਂ ਲਚਕੀਲਾ ਤਰੀਕਾ ਹੈ, ਅਤੇ ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਜ਼ਿਆਦਾਤਰ ਡਾਟਾ ਸਾਇੰਟਿਸਟ Python ਨੂੰ ਆਪਣਾ ਮੁੱਖ ਸੰਦ ਵਜੋਂ ਵਰਤਦੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਡਾਟਾ ਸਾਇੰਸ ਯਾਤਰਾ ਵਿੱਚ ਗੰਭੀਰ ਹੋ, ਤਾਂ Python ਨੂੰ ਗਹਿਰਾਈ ਨਾਲ ਸਿੱਖਣਾ ਸ਼ਾਇਦ ਇੱਕ ਚੰਗਾ ਵਿਚਾਰ ਹੈ! +ਚਾਹੇ ਤੁਹਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਸੰਰਚਿਤ ਜਾਂ ਅਸੰਰਚਿਤ ਡਾਟਾ ਹੈ, Python ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤੁਸੀਂ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਸਮਝਣ ਨਾਲ ਸੰਬੰਧਿਤ ਸਾਰੇ ਕਦਮ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਸ਼ਾਇਦ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਸਭ ਤੋਂ ਲਚਕਦਾਰ ਤਰੀਕਾ ਹੈ, ਅਤੇ ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਜ਼ਿਆਦਾਤਰ ਡਾਟਾ ਸਾਇੰਟਿਸਟ Python ਨੂੰ ਆਪਣਾ ਮੁੱਖ ਸਾਧਨ ਵਜੋਂ ਵਰਤਦੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਡਾਟਾ ਸਾਇੰਸ ਯਾਤਰਾ ਵਿੱਚ ਗੰਭੀਰ ਹੋ, ਤਾਂ Python ਨੂੰ ਗਹਿਰਾਈ ਨਾਲ ਸਿੱਖਣਾ ਸ਼ਾਇਦ ਇੱਕ ਚੰਗਾ ਵਿਚਾਰ ਹੈ! ## [ਪੋਸਟ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ds/quiz/13) @@ -228,4 +226,4 @@ df = pd.read_csv('file.csv') --- **ਅਸਵੀਕਾਰਨਾ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਨਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file +ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼, ਜੋ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੈ, ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file diff --git a/translations/pl/2-Working-With-Data/07-python/README.md b/translations/pl/2-Working-With-Data/07-python/README.md index 72eed80d..d6646a4b 100644 --- a/translations/pl/2-Working-With-Data/07-python/README.md +++ b/translations/pl/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@ -# 使用資料:Python 和 Pandas 庫 +# 使用數據:Python 和 Pandas 庫 -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| ![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記圖](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | -| 使用 Python - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| 使用 Python - _由 [@nitya](https://twitter.com/nitya) 繪製的速記圖_ | -[![介紹影片](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![介紹影片](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.tw.png)](https://youtu.be/dZjWOGbsN4Y) -雖然資料庫提供了非常高效的方式來存儲資料並使用查詢語言進行查詢,但最靈活的資料處理方式是編寫自己的程式來操作資料。在許多情況下,使用資料庫查詢可能更有效。然而,當需要更複雜的資料處理時,使用 SQL 可能不容易完成。 -資料處理可以用任何程式語言編寫,但有些語言在處理資料方面更高效。資料科學家通常偏好以下語言之一: +雖然資料庫提供了非常高效的方式來存儲數據並使用查詢語言進行查詢,但最靈活的數據處理方式是編寫自己的程式來操作數據。在許多情況下,使用資料庫查詢可能更有效。然而,在某些需要更複雜數據處理的情況下,使用 SQL 可能不容易完成。 -* **[Python](https://www.python.org/)** 是一種通用程式語言,因其簡單性常被認為是初學者的最佳選擇之一。Python 擁有許多額外的庫,可以幫助解決許多實際問題,例如從 ZIP 壓縮檔案中提取資料,或將圖片轉換為灰階。除了資料科學,Python 也常用於網頁開發。 -* **[R](https://www.r-project.org/)** 是一個傳統工具箱,專為統計資料處理而設計。它擁有大量的庫(CRAN),使其成為資料處理的良好選擇。然而,R 不是通用程式語言,通常僅限於資料科學領域使用。 -* **[Julia](https://julialang.org/)** 是另一種專為資料科學設計的語言。它旨在提供比 Python 更好的性能,是科學實驗的理想工具。 +數據處理可以用任何程式語言編寫,但有些語言在處理數據方面更高效。數據科學家通常偏好以下幾種語言: -在本課程中,我們將重點使用 Python 進行簡單的資料處理。我們假設您已對該語言有基本的熟悉。如果您想深入了解 Python,可以參考以下資源: +* **[Python](https://www.python.org/)** 是一種通用程式語言,因其簡單性常被認為是初學者的最佳選擇之一。Python 擁有許多額外的庫,可以幫助解決許多實際問題,例如從 ZIP 壓縮檔案中提取數據,或將圖片轉換為灰度。除了數據科學,Python 也常用於網頁開發。 +* **[R](https://www.r-project.org/)** 是一個傳統工具箱,專為統計數據處理而設計。它擁有大量的庫資源(CRAN),使其成為數據處理的良好選擇。然而,R 不是通用程式語言,通常僅用於數據科學領域。 +* **[Julia](https://julialang.org/)** 是另一種專為數據科學設計的語言。它旨在提供比 Python 更好的性能,是科學實驗的理想工具。 -* [用 Turtle Graphics 和 Fractals 趣味學習 Python](https://github.com/shwars/pycourse) - 基於 GitHub 的 Python 程式設計快速入門課程 -* [從 Python 開始您的第一步](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 上的學習路徑 +在本課程中,我們將重點使用 Python 進行簡單的數據處理。我們假設您已對該語言有基本的熟悉。如果您希望更深入地了解 Python,可以參考以下資源: -資料可以有多種形式。在本課程中,我們將探討三種資料形式 - **表格資料**、**文字**和**圖片**。 +* [使用 Turtle Graphics 和 Fractals 以有趣的方式學習 Python](https://github.com/shwars/pycourse) - 基於 GitHub 的 Python 程式快速入門課程 +* [從 Python 開始您的第一步](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 上的學習路徑 -我們將專注於一些資料處理的例子,而不是全面介紹所有相關的庫。這樣可以讓您了解主要的可能性,並在需要時知道如何找到解決問題的方法。 +數據可以有多種形式。在本課程中,我們將考慮三種數據形式:**表格數據**、**文本**和**圖片**。 -> **最有用的建議**:當您需要對資料執行某些操作但不知道如何進行時,嘗試在網路上搜尋。[Stackoverflow](https://stackoverflow.com/) 通常包含許多針對常見任務的 Python 程式碼範例。 +我們將重點介紹一些數據處理的例子,而不是全面概述所有相關庫。這樣可以幫助您了解主要概念,並在需要時知道如何尋找解決方案。 + +> **最有用的建議**:當您需要對數據執行某些操作但不知道如何進行時,嘗試在網路上搜索。[Stackoverflow](https://stackoverflow.com/) 通常包含許多針對常見任務的 Python 代碼範例。 ## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/12) -## 表格資料與 Dataframes +## 表格數據和 Dataframes -當我們討論關聯式資料庫時,您已經接觸過表格資料。當您擁有大量資料,並且這些資料包含在許多不同的關聯表中時,使用 SQL 來處理它們是非常合理的。然而,在許多情況下,我們擁有一個資料表,並需要對該資料進行一些**理解**或**洞察**,例如分佈情況、值之間的相關性等。在資料科學中,經常需要對原始資料進行一些轉換,然後進行視覺化。這兩個步驟都可以輕鬆地使用 Python 完成。 +當我們討論關係型資料庫時,您已經接觸過表格數據。當您擁有大量數據,並且它包含在許多不同的關聯表中時,使用 SQL 來處理它是非常合理的。然而,在許多情況下,我們擁有一個數據表,並需要對該數據進行一些**理解**或**洞察**,例如分佈、值之間的相關性等。在數據科學中,經常需要對原始數據進行一些轉換,然後進行可視化。這兩個步驟都可以使用 Python 輕鬆完成。 -在 Python 中,有兩個最有用的庫可以幫助您處理表格資料: -* **[Pandas](https://pandas.pydata.org/)** 允許您操作所謂的 **Dataframes**,它類似於關聯表。您可以擁有命名的列,並對行、列以及整個 Dataframe 執行不同的操作。 +Python 中有兩個最有用的庫可以幫助您處理表格數據: +* **[Pandas](https://pandas.pydata.org/)** 允許您操作所謂的 **Dataframes**,它類似於關係型表格。您可以擁有命名的列,並對行、列以及整個 Dataframe 執行不同的操作。 * **[Numpy](https://numpy.org/)** 是一個用於處理 **張量**(即多維**陣列**)的庫。陣列的值具有相同的基礎類型,它比 Dataframe 更簡單,但提供了更多的數學操作,並且開銷更少。 此外,還有幾個您應該了解的庫: -* **[Matplotlib](https://matplotlib.org/)** 是一個用於資料視覺化和繪製圖表的庫 +* **[Matplotlib](https://matplotlib.org/)** 是一個用於數據可視化和繪製圖表的庫 * **[SciPy](https://www.scipy.org/)** 是一個包含一些額外科學函數的庫。我們在討論概率和統計時已經接觸過該庫 -以下是您通常在 Python 程式開頭用來導入這些庫的程式碼: +以下是您通常在 Python 程式開頭用來導入這些庫的代碼: ```python import numpy as np import pandas as pd @@ -55,15 +56,15 @@ import matplotlib.pyplot as plt from scipy import ... # you need to specify exact sub-packages that you need ``` -Pandas 的核心概念圍繞幾個基本概念。 +Pandas 圍繞幾個基本概念進行。 ### Series -**Series** 是一個值的序列,類似於列表或 numpy 陣列。主要區別在於 Series 還具有 **索引**,當我們對 Series 進行操作(例如相加)時,索引會被考慮。索引可以像整數行號一樣簡單(當從列表或陣列創建 Series 時,默認使用此索引),也可以具有複雜的結構,例如日期區間。 +**Series** 是一系列值,類似於列表或 numpy 陣列。主要區別在於 Series 還具有**索引**,當我們對 Series 進行操作(例如相加)時,索引會被考慮在內。索引可以像整數行號一樣簡單(當從列表或陣列創建 Series 時,默認使用此索引),也可以具有複雜結構,例如日期區間。 -> **注意**:在附帶的筆記本 [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb) 中有一些 Pandas 的入門程式碼。我們在此僅列出一些例子,您可以查看完整的筆記本。 +> **注意**:在附帶的筆記本 [`notebook.ipynb`](notebook.ipynb) 中有一些 Pandas 的入門代碼。我們在此僅概述一些例子,您可以查看完整的筆記本。 -舉個例子:我們想分析冰淇淋店的銷售情況。讓我們生成一段時間內的銷售數據(每天售出的商品數量): +舉例來說:我們想分析冰淇淋店的銷售情況。讓我們生成一段時間內的銷售數據(每天售出的商品數量): ```python start_date = "Jan 1, 2020" end_date = "Mar 31, 2020" @@ -72,9 +73,9 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![時間序列圖](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![時間序列圖](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.tw.png) -假設每週我們都會舉辦一次朋友聚會,並額外拿出 10 盒冰淇淋供聚會使用。我們可以創建另一個以週為索引的 Series 來展示這一點: +假設每週我們都會為朋友舉辦派對,並額外拿出 10 盒冰淇淋。我們可以創建另一個以週為索引的 Series 來展示這一點: ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) ``` @@ -83,16 +84,16 @@ additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W" total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![時間序列圖](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![時間序列圖](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.tw.png) -> **注意** 我們並未使用簡單的語法 `total_items+additional_items`。如果使用該語法,我們會在結果 Series 中得到許多 `NaN`(*非數值*)值。這是因為在 `additional_items` Series 的某些索引點缺少值,而將 `NaN` 與任何值相加會得到 `NaN`。因此,我們需要在相加時指定 `fill_value` 參數。 +> **注意**:我們並未使用簡單語法 `total_items+additional_items`。如果使用該語法,我們會在結果 Series 中得到許多 `NaN`(*非數值*)值。這是因為在 `additional_items` Series 的某些索引點缺少值,而將 `NaN` 與任何值相加會得到 `NaN`。因此,我們需要在相加時指定 `fill_value` 參數。 -使用時間序列,我們還可以使用不同的時間間隔對 Series 進行**重採樣**。例如,假設我們想計算每月的平均銷售量。我們可以使用以下程式碼: +使用時間序列,我們還可以**重新取樣**不同的時間間隔。例如,假設我們想計算每月的平均銷售量。我們可以使用以下代碼: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![每月時間序列平均值](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![每月時間序列平均值](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.tw.png) ### DataFrame @@ -108,7 +109,7 @@ df = pd.DataFrame([a,b]) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | 1 | I | like | to | use | Python | and | Pandas | very | much | -我們也可以使用 Series 作為列,並使用字典指定列名: +我們也可以使用 Series 作為列,並通過字典指定列名: ```python df = pd.DataFrame({ 'A' : a, 'B' : b }) ``` @@ -126,32 +127,32 @@ df = pd.DataFrame({ 'A' : a, 'B' : b }) | 7 | 8 | very | | 8 | 9 | much | -**注意** 我們也可以通過轉置前一個表格來獲得此表格佈局,例如,通過編寫 +**注意**:我們也可以通過轉置前一個表格來獲得此表格佈局,例如: ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) ``` -其中 `.T` 表示轉置 DataFrame 的操作,即更改行和列,而 `rename` 操作允許我們重命名列以匹配前面的例子。 +其中 `.T` 表示轉置 DataFrame 的操作,即交換行和列,而 `rename` 操作允許我們重命名列以匹配前面的例子。 -以下是我們可以對 DataFrame 執行的一些最重要的操作: +以下是一些我們可以對 DataFrame 執行的重要操作: -**列選擇**。我們可以通過編寫 `df['A']` 選擇單個列 - 此操作返回一個 Series。我們也可以通過編寫 `df[['B','A']]` 選擇列的子集到另一個 DataFrame - 此操作返回另一個 DataFrame。 +**列選擇**。我們可以通過 `df['A']` 選擇單個列,此操作返回一個 Series。我們也可以通過 `df[['B','A']]` 選擇列的子集到另一個 DataFrame,此操作返回另一個 DataFrame。 -**根據條件篩選**特定行。例如,要僅保留列 `A` 大於 5 的行,我們可以編寫 `df[df['A']>5]`。 +**根據條件篩選**特定行。例如,要僅保留列 `A` 大於 5 的行,我們可以寫 `df[df['A']>5]`。 -> **注意**:篩選的工作方式如下。表達式 `df['A']<5` 返回一個布林 Series,指示原始 Series `df['A']` 中每個元素的表達式是否為 `True` 或 `False`。當布林 Series 用作索引時,它返回 DataFrame 中的行子集。因此,不能使用任意的 Python 布林表達式,例如,編寫 `df[df['A']>5 and df['A']<7]` 是錯誤的。相反,您應該使用布林 Series 的特殊 `&` 操作,編寫 `df[(df['A']>5) & (df['A']<7)]`(*括號在此處很重要*)。 +> **注意**:篩選的工作方式如下。表達式 `df['A']<5` 返回一個布林 Series,指示原始 Series `df['A']` 中每個元素的表達式是否為 `True` 或 `False`。當布林 Series 用作索引時,它返回 DataFrame 中的行子集。因此,不能使用任意 Python 布林表達式,例如,寫 `df[df['A']>5 and df['A']<7]` 是錯誤的。相反,您應使用布林 Series 的特殊 `&` 操作,寫 `df[(df['A']>5) & (df['A']<7)]`(*括號在此處很重要*)。 -**創建新的可計算列**。我們可以通過使用直觀的表達式輕鬆為 DataFrame 創建新的可計算列: +**創建新的可計算列**。我們可以通過直觀的表達式輕鬆為 DataFrame 創建新的可計算列: ```python df['DivA'] = df['A']-df['A'].mean() ``` -此例計算列 A 與其平均值的偏差。實際上,我們正在計算一個 Series,然後將該 Series 分配給左側,創建另一列。因此,我們不能使用與 Series 不兼容的任何操作,例如,以下程式碼是錯誤的: +此例計算列 A 與其平均值的偏差。實際上,我們是在計算一個 Series,然後將該 Series 分配給左側,創建另一列。因此,我們不能使用與 Series 不兼容的操作,例如,以下代碼是錯誤的: ```python # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result ``` -後一個例子雖然語法正確,但給出了錯誤的結果,因為它將 Series `B` 的長度分配給列中的所有值,而不是分配我們預期的每個元素的長度。 +後一個例子雖然語法正確,但結果錯誤,因為它將 Series `B` 的長度分配給列中的所有值,而不是分配給每個元素的長度。 -如果需要計算此類複雜的表達式,我們可以使用 `apply` 函數。最後一個例子可以寫成如下: +如果需要計算此類複雜表達式,我們可以使用 `apply` 函數。上述例子可以寫成如下: ```python df['LenB'] = df['B'].apply(lambda x : len(x)) # or @@ -177,11 +178,11 @@ df['LenB'] = df['B'].apply(len) df.iloc[:5] ``` -**分組**通常用於獲得類似於 Excel 中*樞紐分析表*的結果。假設我們想計算列 `A` 的平均值,按 `LenB` 的每個值分組。然後我們可以按 `LenB` 分組 DataFrame,並調用 `mean`: +**分組**通常用於獲得類似於 Excel 中*樞紐表*的結果。假設我們想計算列 `A` 的平均值,按 `LenB` 的數字分組。我們可以按 `LenB` 分組 DataFrame,然後調用 `mean`: ```python -df.groupby(by='LenB').mean() +df.groupby(by='LenB')[['A','DivA']].mean() ``` -如果我們需要計算平均值和組中的元素數量,那麼可以使用更複雜的 `aggregate` 函數: +如果我們需要計算平均值和組中的元素數量,則可以使用更複雜的 `aggregate` 函數: ```python df.groupby(by='LenB') \ .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ @@ -197,68 +198,68 @@ df.groupby(by='LenB') \ | 4 | 3 | 6.333333 | | 6 | 2 | 6.000000 | -### 獲取資料 -我們已經看到如何輕鬆地從 Python 對象構建 Series 和 DataFrames。然而,數據通常以文本文件或 Excel 表格的形式存在。幸運的是,Pandas 為我們提供了一種簡單的方法來從磁碟中載入數據。例如,讀取 CSV 文件就像這樣簡單: +### 獲取數據 +我們已經看到如何輕鬆地從 Python 對象構建 Series 和 DataFrame。然而,數據通常以文本文件或 Excel 表格的形式出現。幸運的是,Pandas 為我們提供了一種簡單的方法來從磁碟中加載數據。例如,讀取 CSV 文件就像這樣簡單: ```python df = pd.read_csv('file.csv') ``` -我們將在“挑戰”部分中看到更多載入數據的例子,包括從外部網站獲取數據。 +我們將在“挑戰”部分中看到更多加載數據的例子,包括從外部網站獲取數據。 -### 打印和繪圖 +### 打印與繪圖 -數據科學家經常需要探索數據,因此能夠可視化數據非常重要。當 DataFrame 很大時,我們通常只需要打印出前幾行來確保我們的操作是正確的。這可以通過調用 `df.head()` 完成。如果你在 Jupyter Notebook 中運行,它會以漂亮的表格形式打印出 DataFrame。 +數據科學家經常需要探索數據,因此能夠可視化數據非常重要。當 DataFrame 很大時,我們通常只想通過打印出前幾行來確保我們的操作是正確的。這可以通過調用 `df.head()` 來完成。如果你在 Jupyter Notebook 中運行它,它會以漂亮的表格形式打印出 DataFrame。 -我們還看到了使用 `plot` 函數來可視化某些列的例子。雖然 `plot` 對許多任務非常有用,並且通過 `kind=` 參數支持多種不同的圖表類型,但你也可以使用原始的 `matplotlib` 庫來繪製更複雜的圖表。我們將在單獨的課程中詳細介紹數據可視化。 +我們還看到了使用 `plot` 函數來可視化某些列的用法。雖然 `plot` 對於許多任務非常有用,並且通過 `kind=` 參數支持許多不同的圖表類型,但你也可以使用原始的 `matplotlib` 庫來繪製更複雜的內容。我們將在單獨的課程中詳細介紹數據可視化。 -這個概述涵蓋了 Pandas 的最重要概念,但這個庫非常豐富,幾乎沒有你不能用它完成的事情!現在讓我們應用這些知識來解決具體問題。 +這個概述涵蓋了 Pandas 的一些重要概念,但這個庫非常豐富,你可以用它做的事情幾乎沒有上限!現在,讓我們應用這些知識來解決具體問題。 ## 🚀 挑戰 1:分析 COVID 傳播 -我們將專注於的第一個問題是 COVID-19 的流行病傳播建模。為了做到這一點,我們將使用由 [約翰霍普金斯大學](https://jhu.edu/) 的 [系統科學與工程中心](https://systems.jhu.edu/) (CSSE) 提供的不同國家感染人數數據。數據集可在 [這個 GitHub 存儲庫](https://github.com/CSSEGISandData/COVID-19) 中找到。 +我們將專注於的第一個問題是建模 COVID-19 的流行病傳播。為此,我們將使用由 [約翰霍普金斯大學](https://jhu.edu/) 的 [系統科學與工程中心](https://systems.jhu.edu/) (CSSE) 提供的不同國家感染人數數據。數據集可在 [這個 GitHub 儲存庫](https://github.com/CSSEGISandData/COVID-19) 中獲取。 -由於我們想展示如何處理數據,我們邀請你打開 [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) 並從頭到尾閱讀。你也可以執行單元格,並完成我們在最後留下的一些挑戰。 +由於我們想展示如何處理數據,我們邀請你打開 [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) 並從頭到尾閱讀它。你還可以執行單元格,並完成我們在最後為你留下的一些挑戰。 -![COVID 傳播](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![COVID 傳播](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.tw.png) -> 如果你不知道如何在 Jupyter Notebook 中運行代碼,可以查看 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 +> 如果你不知道如何在 Jupyter Notebook 中運行代碼,請查看 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 ## 處理非結構化數據 -雖然數據通常以表格形式存在,但在某些情況下我們需要處理較少結構化的數據,例如文本或圖像。在這種情況下,要應用我們上面看到的數據處理技術,我們需要以某種方式**提取**結構化數據。以下是一些例子: +雖然數據通常以表格形式出現,但在某些情況下,我們需要處理結構化程度較低的數據,例如文本或圖像。在這種情況下,為了應用我們上面看到的數據處理技術,我們需要以某種方式**提取**結構化數據。以下是一些例子: -* 從文本中提取關鍵字,並查看這些關鍵字出現的頻率 +* 從文本中提取關鍵詞,並查看這些關鍵詞出現的頻率 * 使用神經網絡提取圖片中物體的信息 -* 獲取視頻鏡頭中人物的情感信息 +* 獲取視頻鏡頭中人們的情感信息 -## 🚀 挑戰 2:分析 COVID 相關論文 +## 🚀 挑戰 2:分析 COVID 論文 -在這個挑戰中,我們將繼續探討 COVID 疫情的主題,並專注於處理相關的科學論文。有一個 [CORD-19 數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge),其中包含超過 7000 篇(撰寫時)關於 COVID 的論文,並提供元數據和摘要(其中約一半還提供全文)。 +在這個挑戰中,我們將繼續關注 COVID 大流行的主題,並專注於處理該主題的科學論文。有一個 [CORD-19 數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge),其中包含超過 7000 篇(撰寫本文時)關於 COVID 的論文,並附有元數據和摘要(其中約一半還提供全文)。 -使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 認知服務分析此數據集的完整示例已在 [這篇博客文章](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) 中描述。我們將討論此分析的簡化版本。 +使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 認知服務分析該數據集的完整示例已在 [這篇博客文章](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) 中描述。我們將討論此分析的簡化版本。 -> **NOTE**: 我們不提供此存儲庫中的數據集副本。你可能需要先從 [Kaggle 上的這個數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 下載 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 文件。可能需要在 Kaggle 註冊。你也可以從 [這裡](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) 無需註冊下載數據集,但它將包括所有全文以及元數據文件。 +> **NOTE**: 我們不提供該數據集的副本作為此儲存庫的一部分。你可能需要先從 [Kaggle 上的這個數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 下載 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 文件。可能需要在 Kaggle 上註冊。你也可以從 [這裡](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) 無需註冊下載數據集,但它將包括所有全文以及元數據文件。 -打開 [`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) 並從頭到尾閱讀。你也可以執行單元格,並完成我們在最後留下的一些挑戰。 +打開 [`notebook-papers.ipynb`](notebook-papers.ipynb) 並從頭到尾閱讀它。你還可以執行單元格,並完成我們在最後為你留下的一些挑戰。 -![COVID 醫療處理](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![COVID 醫療處理](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.tw.png) ## 處理圖像數據 -最近,已開發出非常強大的 AI 模型,能夠理解圖像。使用預訓練的神經網絡或雲服務可以解決許多任務。一些例子包括: +最近,已經開發出非常強大的 AI 模型,能夠理解圖像。有許多任務可以使用預訓練的神經網絡或雲服務來解決。一些例子包括: -* **圖像分類**,可以幫助你將圖像分類到預定義的類別之一。你可以使用像 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務輕鬆訓練自己的圖像分類器。 +* **圖像分類**,可以幫助你將圖像分類到預定義的類別中。你可以使用像 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務輕鬆訓練自己的圖像分類器。 * **物體檢測**,用於檢測圖像中的不同物體。像 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務可以檢測許多常見物體,你也可以訓練 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 模型來檢測一些特定的感興趣物體。 * **人臉檢測**,包括年齡、性別和情感檢測。這可以通過 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 完成。 -所有這些雲服務都可以通過 [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) 調用,因此可以輕鬆地集成到你的數據探索工作流程中。 +所有這些雲服務都可以通過 [Python SDK](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) 調用,因此可以輕鬆地集成到你的數據探索工作流程中。 以下是一些探索圖像數據源的例子: -* 在博客文章 [如何在無需編碼的情況下學習數據科學](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) 中,我們探索 Instagram 照片,試圖了解什麼使人們更喜歡某張照片。我們首先使用 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 從圖片中提取盡可能多的信息,然後使用 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 建立可解釋的模型。 -* 在 [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) 中,我們使用 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 提取活動照片中人物的情感,試圖了解什麼使人們感到快樂。 +* 在博客文章 [如何在不編碼的情況下學習數據科學](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) 中,我們探索了 Instagram 照片,試圖了解什麼使人們對某張照片點贊更多。我們首先使用 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 從圖片中提取盡可能多的信息,然後使用 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 構建可解釋的模型。 +* 在 [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) 中,我們使用 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 提取活動照片中人們的情感,試圖了解什麼讓人們感到快樂。 ## 結論 -無論你擁有結構化數據還是非結構化數據,使用 Python 你都可以執行與數據處理和理解相關的所有步驟。這可能是最靈活的數據處理方式,這也是大多數數據科學家使用 Python 作為主要工具的原因。如果你對數據科學之旅是認真的,深入學習 Python 可能是一個好主意! +無論你擁有結構化還是非結構化數據,使用 Python 你都可以執行與數據處理和理解相關的所有步驟。這可能是最靈活的數據處理方式,這也是為什麼大多數數據科學家將 Python 作為主要工具的原因。如果你對數據科學之旅是認真的,那麼深入學習 Python 可能是一個好主意! ## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/13) @@ -268,12 +269,12 @@ df = pd.read_csv('file.csv') * [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) **線上資源** -* 官方 [10 分鐘學習 Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 教程 +* 官方 [10 分鐘學 Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 教程 * [Pandas 可視化文檔](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) **學習 Python** -* [用 Turtle Graphics 和分形圖以有趣的方式學習 Python](https://github.com/shwars/pycourse) -* [從 Python 開始你的第一步](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) 在 [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 上的學習路徑 +* [用 Turtle Graphics 和分形圖形以有趣的方式學習 Python](https://github.com/shwars/pycourse) +* [在 Microsoft Learn 上學習 Python 的第一步](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) ## 作業 @@ -286,4 +287,4 @@ df = pd.read_csv('file.csv') --- **免責聲明**: -本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解釋不承擔責任。 \ No newline at end of file diff --git a/translations/uk/2-Working-With-Data/07-python/README.md b/translations/uk/2-Working-With-Data/07-python/README.md index d556b3e3..590463ee 100644 --- a/translations/uk/2-Working-With-Data/07-python/README.md +++ b/translations/uk/2-Working-With-Data/07-python/README.md @@ -1,51 +1,51 @@ # Робота з даними: Python та бібліотека Pandas -| ![Скетчноут від [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/07-WorkWithPython.png) | +| ![ Скетчноут від [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | | :-------------------------------------------------------------------------------------------------------: | | Робота з Python - _Скетчноут від [@nitya](https://twitter.com/nitya)_ | -[![Вступне відео](../../../../2-Working-With-Data/07-python/images/video-ds-python.png)](https://youtu.be/dZjWOGbsN4Y) +[![Вступне відео](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.uk.png)](https://youtu.be/dZjWOGbsN4Y) -Хоча бази даних пропонують дуже ефективні способи зберігання даних і їх запит за допомогою мов запитів, найгнучкішим способом обробки даних є написання власної програми для їх маніпуляції. У багатьох випадках запит до бази даних буде більш ефективним. Однак у деяких випадках, коли потрібна складніша обробка даних, це не можна легко зробити за допомогою SQL. -Обробку даних можна програмувати будь-якою мовою програмування, але є певні мови, які є більш високорівневими для роботи з даними. Зазвичай фахівці з даних віддають перевагу одній із наступних мов: +Хоча бази даних пропонують дуже ефективні способи зберігання даних і запитів до них за допомогою мов запитів, найгнучкішим способом обробки даних є написання власної програми для їх маніпулювання. У багатьох випадках виконання запиту до бази даних буде більш ефективним. Однак у деяких випадках, коли потрібна більш складна обробка даних, це не можна легко зробити за допомогою SQL. +Обробка даних може бути запрограмована на будь-якій мові програмування, але є певні мови, які є більш високорівневими для роботи з даними. Зазвичай, фахівці з даних віддають перевагу одній із наступних мов: -* **[Python](https://www.python.org/)** — універсальна мова програмування, яка часто вважається одним із найкращих варіантів для початківців через її простоту. Python має багато додаткових бібліотек, які можуть допомогти вирішити багато практичних завдань, таких як витяг даних із ZIP-архіву або перетворення зображення в градації сірого. Крім науки про дані, Python також часто використовується для веброзробки. +* **[Python](https://www.python.org/)** — універсальна мова програмування, яка часто вважається одним із найкращих варіантів для початківців через її простоту. Python має багато додаткових бібліотек, які можуть допомогти вирішити багато практичних задач, таких як витяг даних із ZIP-архіву або перетворення зображення в градації сірого. Окрім науки про дані, Python також часто використовується для веб-розробки. * **[R](https://www.r-project.org/)** — традиційний інструментарій, розроблений з урахуванням статистичної обробки даних. Він також містить великий репозиторій бібліотек (CRAN), що робить його хорошим вибором для обробки даних. Однак R не є універсальною мовою програмування і рідко використовується за межами сфери науки про дані. * **[Julia](https://julialang.org/)** — ще одна мова, розроблена спеціально для науки про дані. Вона призначена для забезпечення кращої продуктивності, ніж Python, що робить її чудовим інструментом для наукових експериментів. -У цьому уроці ми зосередимося на використанні Python для простої обробки даних. Ми припускаємо базове знайомство з мовою. Якщо ви хочете глибше ознайомитися з Python, ви можете звернутися до одного з наступних ресурсів: +У цьому уроці ми зосередимося на використанні Python для простої обробки даних. Ми припускаємо базове знайомство з мовою. Якщо ви хочете глибше ознайомитися з Python, можете звернутися до одного з наступних ресурсів: -* [Вивчайте Python весело за допомогою графіки Turtle та фракталів](https://github.com/shwars/pycourse) — швидкий вступний курс програмування на Python на GitHub +* [Вивчайте Python весело за допомогою Turtle Graphics та фракталів](https://github.com/shwars/pycourse) — швидкий вступний курс програмування на Python на GitHub * [Зробіть перші кроки з Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Навчальний шлях на [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) -Дані можуть бути представлені в багатьох формах. У цьому уроці ми розглянемо три форми даних — **табличні дані**, **текст** і **зображення**. +Дані можуть бути представлені у багатьох формах. У цьому уроці ми розглянемо три форми даних — **табличні дані**, **текст** та **зображення**. -Ми зосередимося на кількох прикладах обробки даних, замість того, щоб давати вам повний огляд усіх пов’язаних бібліотек. Це дозволить вам зрозуміти основну ідею того, що можливо, і залишить вас із розумінням того, де знайти рішення ваших проблем, коли це буде потрібно. +Ми зосередимося на кількох прикладах обробки даних, замість того, щоб давати вам повний огляд усіх пов’язаних бібліотек. Це дозволить вам зрозуміти основну ідею того, що можливо, і залишить вас із розумінням того, де знайти рішення ваших проблем, коли вони виникнуть. -> **Найкорисніша порада**. Коли вам потрібно виконати певну операцію з даними, яку ви не знаєте, як зробити, спробуйте пошукати її в інтернеті. [Stackoverflow](https://stackoverflow.com/) зазвичай містить багато корисних прикладів коду на Python для багатьох типових завдань. +> **Найкорисніша порада**. Коли вам потрібно виконати певну операцію з даними, яку ви не знаєте, як зробити, спробуйте пошукати її в інтернеті. [Stackoverflow](https://stackoverflow.com/) зазвичай містить багато корисних прикладів коду на Python для багатьох типових задач. ## [Тест перед лекцією](https://ff-quizzes.netlify.app/en/ds/quiz/12) ## Табличні дані та DataFrame -Ви вже зустрічалися з табличними даними, коли ми говорили про реляційні бази даних. Коли у вас багато даних, і вони містяться в багатьох різних пов’язаних таблицях, безумовно, має сенс використовувати SQL для роботи з ними. Однак є багато випадків, коли у нас є таблиця даних, і нам потрібно отримати певне **розуміння** або **інсайти** про ці дані, наприклад, розподіл, кореляцію між значеннями тощо. У науці про дані є багато випадків, коли нам потрібно виконати певні перетворення вихідних даних, а потім візуалізувати їх. Обидва ці кроки можна легко виконати за допомогою Python. +Ви вже зустрічалися з табличними даними, коли ми говорили про реляційні бази даних. Коли у вас є багато даних, і вони містяться в багатьох різних пов’язаних таблицях, безумовно, має сенс використовувати SQL для роботи з ними. Однак є багато випадків, коли у нас є таблиця даних, і нам потрібно отримати певне **розуміння** або **інсайти** про ці дані, такі як розподіл, кореляція між значеннями тощо. У науці про дані є багато випадків, коли нам потрібно виконати певні трансформації вихідних даних, а потім візуалізувати їх. Обидва ці кроки можна легко виконати за допомогою Python. Є дві найкорисніші бібліотеки в Python, які можуть допомогти вам працювати з табличними даними: * **[Pandas](https://pandas.pydata.org/)** дозволяє маніпулювати так званими **DataFrame**, які аналогічні реляційним таблицям. Ви можете мати названі стовпці та виконувати різні операції над рядками, стовпцями та DataFrame загалом. -* **[Numpy](https://numpy.org/)** — це бібліотека для роботи з **тензорами**, тобто багатовимірними **масивами**. Масив має значення одного базового типу, і він простіший, ніж DataFrame, але пропонує більше математичних операцій і створює менше накладних витрат. +* **[Numpy](https://numpy.org/)** — це бібліотека для роботи з **тензорами**, тобто багатовимірними **масивами**. Масив має значення одного типу, і він простіший, ніж DataFrame, але пропонує більше математичних операцій і створює менше накладних витрат. -Є також кілька інших бібліотек, про які вам слід знати: +Є також кілька інших бібліотек, про які вам варто знати: * **[Matplotlib](https://matplotlib.org/)** — бібліотека, яка використовується для візуалізації даних і побудови графіків -* **[SciPy](https://www.scipy.org/)** — бібліотека з деякими додатковими науковими функціями. Ми вже стикалися з цією бібліотекою, коли говорили про ймовірність і статистику +* **[SciPy](https://www.scipy.org/)** — бібліотека з деякими додатковими науковими функціями. Ми вже зустрічалися з цією бібліотекою, коли говорили про ймовірність і статистику Ось шматок коду, який ви зазвичай використовуєте для імпорту цих бібліотек на початку вашої програми на Python: ```python @@ -59,11 +59,11 @@ Pandas зосереджена навколо кількох базових ко ### Series -**Series** — це послідовність значень, схожа на список або масив numpy. Основна відмінність полягає в тому, що Series також має **індекс**, і коли ми працюємо з Series (наприклад, додаємо їх), індекс враховується. Індекс може бути таким простим, як цілий номер рядка (це індекс, який використовується за замовчуванням під час створення Series зі списку або масиву), або він може мати складну структуру, наприклад, інтервал дат. +**Series** — це послідовність значень, схожа на список або масив numpy. Основна відмінність полягає в тому, що Series також має **індекс**, і коли ми працюємо з Series (наприклад, додаємо їх), індекс враховується. Індекс може бути таким простим, як номер рядка (це індекс, який використовується за замовчуванням при створенні Series зі списку або масиву), або він може мати складну структуру, наприклад, інтервал дат. -> **Примітка**: У супровідному ноутбуці [`notebook.ipynb`](../../../../2-Working-With-Data/07-python/notebook.ipynb) є вступний код Pandas. Ми лише окреслюємо деякі приклади тут, і ви, безумовно, можете переглянути повний ноутбук. +> **Примітка**: У супровідному ноутбуці [`notebook.ipynb`](notebook.ipynb) є деякий вступний код Pandas. Ми лише окреслюємо деякі приклади тут, і ви, безумовно, можете переглянути повний ноутбук. -Розглянемо приклад: ми хочемо проаналізувати продажі нашого магазину морозива. Давайте створимо серію чисел продажів (кількість проданих одиниць щодня) за певний період часу: +Розглянемо приклад: ми хочемо проаналізувати продажі нашого магазину морозива. Давайте створимо Series чисел продажів (кількість проданих одиниць щодня) за певний період часу: ```python start_date = "Jan 1, 2020" @@ -73,31 +73,31 @@ print(f"Length of index is {len(idx)}") items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) items_sold.plot() ``` -![Графік часових рядів](../../../../2-Working-With-Data/07-python/images/timeseries-1.png) +![Графік часових рядів](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.uk.png) -Тепер припустимо, що щотижня ми організовуємо вечірку для друзів і беремо додатково 10 упаковок морозива для вечірки. Ми можемо створити ще одну серію, індексовану за тижнями, щоб продемонструвати це: +Тепер припустимо, що щотижня ми організовуємо вечірку для друзів і беремо додатково 10 упаковок морозива для вечірки. Ми можемо створити ще один Series, індексований за тижнями, щоб продемонструвати це: ```python additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) ``` -Коли ми додаємо дві серії разом, ми отримуємо загальну кількість: +Коли ми додаємо два Series разом, ми отримуємо загальну кількість: ```python total_items = items_sold.add(additional_items,fill_value=0) total_items.plot() ``` -![Графік часових рядів](../../../../2-Working-With-Data/07-python/images/timeseries-2.png) +![Графік часових рядів](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.uk.png) -> **Примітка**: ми не використовуємо простий синтаксис `total_items+additional_items`. Якби ми це зробили, ми отримали б багато значень `NaN` (*Not a Number*) у результаті. Це тому, що для деяких точок індексу в серії `additional_items` відсутні значення, і додавання `NaN` до чого-небудь призводить до `NaN`. Таким чином, нам потрібно вказати параметр `fill_value` під час додавання. +> **Примітка**: Ми не використовуємо простий синтаксис `total_items+additional_items`. Якби ми це зробили, ми отримали б багато значень `NaN` (*Not a Number*) у результаті. Це тому, що для деяких точок індексу в Series `additional_items` відсутні значення, і додавання `NaN` до чого-небудь призводить до `NaN`. Тому нам потрібно вказати параметр `fill_value` під час додавання. -З часовими рядами ми також можемо **перевибірковувати** серію з різними часовими інтервалами. Наприклад, припустимо, ми хочемо обчислити середній обсяг продажів щомісяця. Ми можемо використати наступний код: +З часовими рядами ми також можемо **перевибірковувати** Series з різними інтервалами часу. Наприклад, припустимо, ми хочемо обчислити середній обсяг продажів щомісяця. Ми можемо використати наступний код: ```python monthly = total_items.resample("1M").mean() ax = monthly.plot(kind='bar') ``` -![Середні значення часових рядів за місяць](../../../../2-Working-With-Data/07-python/images/timeseries-3.png) +![Середні значення часових рядів за місяць](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.uk.png) ### DataFrame -DataFrame — це, по суті, колекція серій із однаковим індексом. Ми можемо об’єднати кілька серій разом у DataFrame: +DataFrame — це, по суті, колекція Series з однаковим індексом. Ми можемо об’єднати кілька Series разом у DataFrame: ```python a = pd.Series(range(1,10)) b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) @@ -127,30 +127,30 @@ df = pd.DataFrame({ 'A' : a, 'B' : b }) | 7 | 8 | very | | 8 | 9 | much | -**Примітка**: ми також можемо отримати цей макет таблиці, транспонуючи попередню таблицю, наприклад, написавши +**Примітка**: Ми також можемо отримати цей макет таблиці, транспонуючи попередню таблицю, наприклад, написавши ```python df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) ``` Тут `.T` означає операцію транспонування DataFrame, тобто зміну рядків і стовпців, а операція `rename` дозволяє перейменувати стовпці, щоб відповідати попередньому прикладу. -Ось кілька найважливіших операцій, які ми можемо виконувати з DataFrame: +Ось кілька найважливіших операцій, які ми можемо виконувати над DataFrame: **Вибір стовпців**. Ми можемо вибрати окремі стовпці, написавши `df['A']` — ця операція повертає Series. Ми також можемо вибрати підмножину стовпців у інший DataFrame, написавши `df[['B','A']]` — це повертає інший DataFrame. -**Фільтрація** лише певних рядків за критеріями. Наприклад, щоб залишити лише рядки зі стовпцем `A`, більшим за 5, ми можемо написати `df[df['A']>5]`. +**Фільтрування** лише певних рядків за критеріями. Наприклад, щоб залишити лише рядки зі стовпцем `A`, більшим за 5, ми можемо написати `df[df['A']>5]`. -> **Примітка**: спосіб роботи фільтрації наступний. Вираз `df['A']<5` повертає булеву серію, яка вказує, чи є вираз `True` чи `False` для кожного елемента вихідної серії `df['A']`. Коли булева серія використовується як індекс, вона повертає підмножину рядків у DataFrame. Таким чином, неможливо використовувати довільний булевий вираз Python, наприклад, написання `df[df['A']>5 and df['A']<7]` буде неправильним. Натомість слід використовувати спеціальну операцію `&` для булевих серій, написавши `df[(df['A']>5) & (df['A']<7)]` (*дужки тут важливі*). +> **Примітка**: Як працює фільтрування. Вираз `df['A']<5` повертає булевий Series, який вказує, чи є вираз `True` чи `False` для кожного елемента вихідного Series `df['A']`. Коли булевий Series використовується як індекс, він повертає підмножину рядків у DataFrame. Таким чином, неможливо використовувати довільний булевий вираз Python, наприклад, написання `df[df['A']>5 and df['A']<7]` буде неправильним. Натомість слід використовувати спеціальну операцію `&` для булевих Series, написавши `df[(df['A']>5) & (df['A']<7)]` (*дужки тут важливі*). -**Створення нових обчислюваних стовпців**. Ми можемо легко створювати нові обчислювані стовпці для нашого DataFrame, використовуючи інтуїтивно зрозумілий вираз, як цей: +**Створення нових обчислюваних стовпців**. Ми можемо легко створювати нові обчислювані стовпці для нашого DataFrame, використовуючи інтуїтивний вираз, як цей: ```python df['DivA'] = df['A']-df['A'].mean() ``` -Цей приклад обчислює відхилення A від його середнього значення. Насправді тут ми обчислюємо серію, а потім призначаємо цю серію лівій стороні, створюючи інший стовпець. Таким чином, ми не можемо використовувати жодні операції, які не сумісні з серіями, наприклад, наведений нижче код є неправильним: +Цей приклад обчислює відхилення A від його середнього значення. Насправді тут ми обчислюємо Series, а потім призначаємо цей Series лівій стороні, створюючи інший стовпець. Таким чином, ми не можемо використовувати жодні операції, які не сумісні з Series, наприклад, наведений нижче код є неправильним: ```python # Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" df['LenB'] = len(df['B']) # <- Wrong result ``` -Останній приклад, хоча синтаксично правильний, дає нам неправильний результат, оскільки він призначає довжину серії `B` всім значенням у стовпці, а не довжину окремих елементів, як ми мали намір. +Останній приклад, хоча синтаксично правильний, дає нам неправильний результат, оскільки він призначає довжину Series `B` всім значенням у стовпці, а не довжину окремих елементів, як ми мали намір. Якщо нам потрібно обчислити складні вирази, як цей, ми можемо використовувати функцію `apply`. Останній приклад можна записати так: ```python @@ -180,7 +180,7 @@ df.iloc[:5] **Групування** часто використовується для отримання результату, схожого на *зведені таблиці* в Excel. Припустимо, ми хочемо обчислити середнє значення стовпця `A` для кожного заданого числа `LenB`. Тоді ми можемо згрупувати наш DataFrame за `LenB` і викликати `mean`: ```python -df.groupby(by='LenB').mean() +df.groupby(by='LenB')[['A','DivA']].mean() ``` Якщо нам потрібно обчислити середнє значення та кількість елементів у групі, тоді ми можемо використовувати більш складну функцію `aggregate`: ```python @@ -203,67 +203,67 @@ df.groupby(by='LenB') \ ```python df = pd.read_csv('file.csv') ``` -Ми побачимо більше прикладів завантаження даних, включаючи отримання їх із зовнішніх веб-сайтів, у розділі "Виклик". +Ми побачимо більше прикладів завантаження даних, включаючи отримання їх із зовнішніх веб-сайтів, у розділі "Challenge". -### Друк та Візуалізація +### Виведення та Візуалізація -Дослідник даних часто має досліджувати дані, тому важливо мати можливість їх візуалізувати. Коли DataFrame великий, часто ми хочемо просто переконатися, що все робимо правильно, друкуючи перші кілька рядків. Це можна зробити, викликавши `df.head()`. Якщо ви запускаєте це з Jupyter Notebook, він надрукує DataFrame у гарній табличній формі. +Дослідник даних часто має досліджувати дані, тому важливо мати можливість їх візуалізувати. Коли DataFrame великий, часто ми хочемо просто переконатися, що все робимо правильно, виводячи перші кілька рядків. Це можна зробити, викликавши `df.head()`. Якщо ви запускаєте це з Jupyter Notebook, він виведе DataFrame у гарній табличній формі. -Ми також бачили використання функції `plot` для візуалізації деяких стовпців. Хоча `plot` дуже корисний для багатьох завдань і підтримує багато різних типів графіків через параметр `kind=`, ви завжди можете використовувати бібліотеку `matplotlib` для побудови чогось більш складного. Ми детально розглянемо візуалізацію даних у окремих уроках курсу. +Ми також бачили використання функції `plot` для візуалізації деяких колонок. Хоча `plot` дуже корисний для багатьох завдань і підтримує багато різних типів графіків через параметр `kind=`, ви завжди можете використовувати бібліотеку `matplotlib` для побудови чогось більш складного. Ми детально розглянемо візуалізацію даних у окремих уроках курсу. -Цей огляд охоплює найважливіші концепції Pandas, однак бібліотека дуже багата, і немає меж тому, що ви можете з нею зробити! Тепер застосуймо ці знання для вирішення конкретної проблеми. +Цей огляд охоплює найважливіші концепції Pandas, однак бібліотека дуже багата, і немає меж тому, що ви можете з нею зробити! Тепер застосуємо ці знання для вирішення конкретної проблеми. -## 🚀 Виклик 1: Аналіз поширення COVID +## 🚀 Challenge 1: Аналіз поширення COVID Перша проблема, на якій ми зосередимося, — це моделювання епідемічного поширення COVID-19. Для цього ми використаємо дані про кількість інфікованих осіб у різних країнах, надані [Центром системної науки та інженерії](https://systems.jhu.edu/) (CSSE) при [Університеті Джонса Гопкінса](https://jhu.edu/). Набір даних доступний у [цьому репозиторії GitHub](https://github.com/CSSEGISandData/COVID-19). -Оскільки ми хочемо продемонструвати, як працювати з даними, ми запрошуємо вас відкрити [`notebook-covidspread.ipynb`](../../../../2-Working-With-Data/07-python/notebook-covidspread.ipynb) і прочитати його від початку до кінця. Ви також можете виконувати комірки та виконувати завдання, які ми залишили для вас наприкінці. +Оскільки ми хочемо продемонструвати, як працювати з даними, ми запрошуємо вас відкрити [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) і прочитати його від початку до кінця. Ви також можете виконувати комірки та виконувати завдання, які ми залишили для вас наприкінці. -![COVID Spread](../../../../2-Working-With-Data/07-python/images/covidspread.png) +![COVID Spread](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.uk.png) > Якщо ви не знаєте, як запускати код у Jupyter Notebook, перегляньте [цю статтю](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). ## Робота з неструктурованими даними -Хоча дані дуже часто надходять у табличній формі, у деяких випадках нам потрібно працювати з менш структурованими даними, наприклад, текстом або зображеннями. У цьому випадку, щоб застосувати методи обробки даних, які ми бачили вище, нам потрібно якось **витягти** структуровані дані. Ось кілька прикладів: +Хоча дані дуже часто надходять у табличній формі, у деяких випадках нам потрібно працювати з менш структурованими даними, наприклад, текстом або зображеннями. У цьому випадку, щоб застосувати техніки обробки даних, які ми бачили вище, нам потрібно якось **витягти** структуровані дані. Ось кілька прикладів: * Витяг ключових слів із тексту та аналіз частоти їх появи * Використання нейронних мереж для отримання інформації про об'єкти на зображенні -* Отримання інформації про емоції людей із відеопотоку камери +* Отримання інформації про емоції людей на відеокамері -## 🚀 Виклик 2: Аналіз COVID-наукових статей +## 🚀 Challenge 2: Аналіз наукових статей про COVID -У цьому виклику ми продовжимо тему пандемії COVID і зосередимося на обробці наукових статей на цю тему. Існує [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) із понад 7000 (на момент написання) статей про COVID, доступних із метаданими та анотаціями (а для приблизно половини з них також доступний повний текст). +У цьому завданні ми продовжимо тему пандемії COVID і зосередимося на обробці наукових статей на цю тему. Існує [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) з понад 7000 (на момент написання) статей про COVID, доступних із метаданими та анотаціями (а для приблизно половини з них також доступний повний текст). -Повний приклад аналізу цього набору даних за допомогою когнітивної служби [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) описаний [у цьому блозі](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Ми обговоримо спрощену версію цього аналізу. +Повний приклад аналізу цього набору даних за допомогою когнітивного сервісу [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) описаний [у цьому блозі](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Ми обговоримо спрощену версію цього аналізу. -> **NOTE**: Ми не надаємо копію набору даних у цьому репозиторії. Спочатку вам може знадобитися завантажити файл [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) із [цього набору даних на Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Може знадобитися реєстрація на Kaggle. Ви також можете завантажити набір даних без реєстрації [звідси](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), але він включатиме всі повні тексти на додаток до файлу метаданих. +> **NOTE**: Ми не надаємо копію набору даних у цьому репозиторії. Вам може знадобитися спочатку завантажити файл [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) з [цього набору даних на Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Може знадобитися реєстрація на Kaggle. Ви також можете завантажити набір даних без реєстрації [звідси](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), але він включатиме всі повні тексти на додаток до файлу метаданих. -Відкрийте [`notebook-papers.ipynb`](../../../../2-Working-With-Data/07-python/notebook-papers.ipynb) і прочитайте його від початку до кінця. Ви також можете виконувати комірки та виконувати завдання, які ми залишили для вас наприкінці. +Відкрийте [`notebook-papers.ipynb`](notebook-papers.ipynb) і прочитайте його від початку до кінця. Ви також можете виконувати комірки та виконувати завдання, які ми залишили для вас наприкінці. -![Covid Medical Treatment](../../../../2-Working-With-Data/07-python/images/covidtreat.png) +![Covid Medical Treatment](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.uk.png) ## Обробка даних зображень Останнім часом були розроблені дуже потужні AI-моделі, які дозволяють нам розуміти зображення. Існує багато завдань, які можна вирішити за допомогою попередньо навчених нейронних мереж або хмарних сервісів. Деякі приклади включають: -* **Класифікація зображень**, яка може допомогти вам категоризувати зображення в одну з попередньо визначених категорій. Ви можете легко навчити власні класифікатори зображень за допомогою таких сервісів, як [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) -* **Виявлення об'єктів** для визначення різних об'єктів на зображенні. Такі сервіси, як [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), можуть виявляти низку загальних об'єктів, а ви можете навчити модель [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) для виявлення конкретних об'єктів, які вас цікавлять. +* **Класифікація зображень**, яка може допомогти вам категоризувати зображення в одну з попередньо визначених категорій. Ви можете легко навчити власні класифікатори зображень, використовуючи сервіси, такі як [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) +* **Виявлення об'єктів** для визначення різних об'єктів на зображенні. Сервіси, такі як [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), можуть виявляти низку поширених об'єктів, а ви можете навчити модель [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) для виявлення конкретних об'єктів, які вас цікавлять. * **Виявлення обличчя**, включаючи визначення віку, статі та емоцій. Це можна зробити за допомогою [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum). Усі ці хмарні сервіси можна викликати за допомогою [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), і таким чином їх можна легко інтегрувати у ваш робочий процес дослідження даних. Ось кілька прикладів дослідження даних із джерел зображень: * У блозі [Як вивчати Data Science без програмування](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) ми досліджуємо фотографії з Instagram, намагаючись зрозуміти, що змушує людей ставити більше лайків на фото. Спочатку ми витягуємо якомога більше інформації з фотографій за допомогою [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), а потім використовуємо [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) для створення інтерпретованої моделі. -* У [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ми використовуємо [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) для витягу емоцій людей на фотографіях із заходів, щоб спробувати зрозуміти, що робить людей щасливими. +* У [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ми використовуємо [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) для витягу емоцій людей на фотографіях з подій, щоб спробувати зрозуміти, що робить людей щасливими. ## Висновок -Незалежно від того, чи у вас вже є структуровані або неструктуровані дані, використовуючи Python, ви можете виконувати всі етапи, пов’язані з обробкою та розумінням даних. Це, мабуть, найгнучкіший спосіб обробки даних, і саме тому більшість дослідників даних використовують Python як свій основний інструмент. Вивчення Python на глибокому рівні — це, ймовірно, гарна ідея, якщо ви серйозно ставитеся до своєї подорожі в Data Science! +Незалежно від того, чи у вас вже є структуровані або неструктуровані дані, використовуючи Python, ви можете виконувати всі етапи, пов'язані з обробкою та розумінням даних. Це, мабуть, найгнучкіший спосіб обробки даних, і саме тому більшість дослідників даних використовують Python як свій основний інструмент. Вивчення Python на глибокому рівні — це, ймовірно, гарна ідея, якщо ви серйозно ставитеся до своєї подорожі в Data Science! ## [Тест після лекції](https://ff-quizzes.netlify.app/en/ds/quiz/13) -## Огляд та Самостійне Вивчення +## Огляд та Самостійне навчання **Книги** * [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) @@ -278,7 +278,7 @@ df = pd.read_csv('file.csv') ## Завдання -[Виконайте більш детальне дослідження даних для викликів вище](assignment.md) +[Виконайте більш детальне дослідження даних для завдань вище](assignment.md) ## Авторство @@ -287,4 +287,4 @@ df = pd.read_csv('file.csv') --- **Відмова від відповідальності**: -Цей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу. \ No newline at end of file +Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу. \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/07-python/README.md b/translations/ur/2-Working-With-Data/07-python/README.md index 1a207e52..db2b902b 100644 --- a/translations/ur/2-Working-With-Data/07-python/README.md +++ b/translations/ur/2-Working-With-Data/07-python/README.md @@ -1,8 +1,8 @@