اذهب إلى المحتوى

السؤال

نشر

لدي ملف بصيغة CSV ويحتوي على بيانات بالشكل التالي:

231, 0
456, 1
84, 0
1234, 0
126, 1

كيف يمكنني إستدعاء هذه الأعمدة من الملف في NumPy؟ بحيث تكون نفس نتيجة الكود التالي:

first_col = np.array([231, 456, 84, 1234, 126])
second_col = np.array([0, 1, 0, 0, 1])

 

Recommended Posts

  • 1
نشر

يمكننا التعامل مع ملفات ال csv بشكل فعال باستعمال المكتبة pandas و خاصة باستعمال التابع read_csv.

من ثم يمكن الوصول إلى العمود المطلوب و تمريره إلى np.array للحصول على المطلوب، أي لتحويل العمود إلى مصفوفة numpy.

يمكن القيام بذلك بالشكل التالي:

import pandas as pd
import numpy as np

df = pd.read_csv('data.csv', header=None)
first_col = np.array(df[[0]])
second_col = np.array(df[[1]])

هنا قمنا بوضع الخيار header=None و ذلك ﻷنه لا يوجد أسماء للأعمدة في الملف، و بالتالي البيانات تبدأ من أول سطر و هو سيقوم هنا بتسمية الأعمدة بالأرقام بدءاً من الصفر، و لهذا أمكننا الوصول إلى أول عمود باستعمال الدليل 0 و ثاني عمود باستعمال الدليل 1.

  • 1
نشر

في الحقيقة هناك الكثير من الطرق لاستدعاء ملف csv عن طريق مكتبة numpy 

  • باستعمال دالة loadtext :

لاستيراد البيانات من ملف نصي ، سنستخدم طريقة NumPy loadtxt (). لاستخدام هذه الدالة ، نحتاج إلى التأكد من أن عدد الإدخالات في كل سطر من المستند النصي يجب أن يكون متساويًا. في Python ، يتم استخدام numpy.load () لتحميل البيانات من ملف نصي ، بهدف القراءة السريعة للملفات النصية الأساسية.

تعريف الدالة 

numpy.loadtxt('data.csv')

مثال: تحميل ملف csv من طريقة loadtxt 

import numpy as np

# باستعمال loadtxt()
arr = np.loadtxt("academy_hsoub.csv",delimiter=",", dtype=str)
print(arr)
  • باستعمال دالة genfromtxt :

تُستخدم دالة genfromtxt () لاستيراد البيانات من مستند نصي. يمكننا تحديد كيفية التعامل مع القيم المفقودة في مجموعة البيانات الخاصة بنا في حالة وجودها.

التعريف او syntax :

numpy.genfromtxt('data.csv')

مثال :

import numpy as np

# باستعمال genfromtxt()
arr = np.genfromtxt("academy_hsoub.csv",delimiter=",", dtype=str)
print(arr)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...