سؤال

هل يجد رمز Python هذا بالفعل منتج DOT لاثنين من المتجهات؟

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
هل كانت مفيدة؟

المحلول

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

نصائح أخرى

نعم إنها كذلك. هذه طريقة أخرى

>>> sum(map( operator.mul, vector1, vector2))
48

وآخر لا يستخدم operator على الاطلاق

>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top