مقالات وتدوينات
(0)

نوع بيانات الكائن في NumPy Python

613 قراءة
0 تعليق
alt
التصنيف مقالات وتدوينات
وقت النشر
2022/07/04
الردود
0

السلام عليكم ورحمة الله وبركاته


 كل ndarray له نوع بيانات مرتبط به (نوع dtype) حيث يُعلمنا كائن نوع البيانات (dtype) بتخطيط المصفوفة وهذا يعني أنه يعطينا معلومات حول:    

  • نوع البيانات (عدد صحيح ، عائم ، كائن بايثون ، إلخ.).  
  • حجم البيانات (عدد البايتات).    
  • ترتيب بايت البيانات (صغير أو كبير Endian).    
  • إذا كان نوع البيانات عبارة عن مصفوفة فرعية ، فما هو شكلها ونوع بياناتها؟

ويتم تخزين قيم ndarray في مخزن مؤقت يمكن اعتباره بمثابة كتلة متجاورة من وحدات بايت الذاكرة وسيتم تفسير هذه البايتات بإعطاؤها بواسطة كائن dtype.

١- إنشاء كائن نوع البيانات (نوع البيانات):

 كائن نوع البيانات هو مثيل لفئة NumPy.dtype ويمكن إنشاؤه باستخدام NumPy.dtype. 

المعلمات:   

  •  obj: الكائن المراد تحويله إلى كائن من نوع البيانات.    
  • محاذاة: منطقي ، اختياري.    
  • أضف حشوة إلى الحقول لمطابقة ما سينتجه مترجم C لبنية C مماثلة.    
  • نسخ: منطقي ، اختياري.    
  • عمل نسخة جديدة من كائن نوع البيانات فإذا كانت False فقد تكون النتيجة مجرد مرجع لكائن نوع بيانات مضمن.

# Python Program to create a data type object
import numpy as np

# np.int16 is converted into a data type object.
print(np.dtype(np.int16))

المخرجات: 

int16


# Python Program to create a data type object
# containing a 32 bit big-endian integer
import numpy as np

# i4 represents integer of size 4 byte
# > represents big-endian byte ordering and < represents little-endian encoding.
# dt is a dtype object
dt = np.dtype('>i4')

print("Byte order is:",dt.byteorder)

print("Size is:",dt.itemsize)

print("Data type is:",dt.name)


المخرجات: 

Byte order is: >

Size is: 4

Name of data type is: int32

يمكن أن يتخذ محدد النوع (i4 في الحالة أعلاه) أشكالًا مختلفة:    

  • b1، i1، i2، i4، i8، u1، u2، u4، u8، f2، f4، f8، c8، c16، a       

(تمثل البايت ، و ints ، و ints غير الموقعة ، والعوامات ، والمعقدة ، و سلاسل ذات طول ثابت ذات أطوال بايت محددة).

  • int8,…,uint8,…,float16, float32, float64, complex64, complex128 

    (هذه المرة بأحجام بت).


ملحوظة:

dtype يختلف عن النوع (type).


# Python program to differentiate
# between type and dtype.
import numpy as np

a = np.array([1])

print("type is: ",type(a))
print("dtype is: ",a.dtype)

المخرجات: 

type is:    

dtype is:  int32


2. كائنات نوع البيانات ذات المصفوفات الهيكلية:

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


# Python program for demonstrating
# the use of fields
import numpy as np

# A structured data type containing a 16-character string (in field ‘name’)
# and a sub-array of two 64-bit floating-point number (in field ‘grades’):

dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))])

# Data type of object with field grades
print(dt['grades'])

# Data type of object with field name
print(dt['name'])

المخرجات: 

('<f8', (2,))


# Python program to demonstrate
# the use of data type object with structured array.
import numpy as np

dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))])

# x is a structured array with names and marks of students.
# Data type of name of the student is np.unicode_ and
# data type of marks is np.float(64)
x = np.array([('Sarah', (8.0, 7.0)), ('John', (6.0, 7.0))], dtype=dt)

print(x[1])
print("Grades of John are: ",x[1]['grades'])
print("Names are: ",x['name'])

المخرجات: 

('John', [ 6.,  7.])

Grades of John are:  [ 6.  7.]

Names are:  ['Sarah' 'John']


المصدر هنا

التعليقات (0)

قم بتسجيل الدخول لتتمكن من إضافة رد