㈠ 使用python編寫一個三維向量,實現向量的加法減法,點乘叉乘
#--coding:gb2312--
classvector3:
def__init__(self,x_=0,y_=0,z_=0):#構造函數
self.x=x_
self.y=y_
self.z=z_
def__add__(self,obj):#重載+作為加號
returnvector3(self.x+obj.x,self.y+obj.y,self.z+obj.z)
def__sub__(self,obj):#重載-作為減號
returnvector3(self.x-obj.x,self.y-obj.y,self.z-obj.z)
def__mul__(self,obj):#重載*作為點乘
returnvector3(self.x*obj.x,self.y*obj.y,self.z*obj.z)
def__pow__(self,obj):#重載**作為叉乘。不好,偏離了常理上的意義,可以考慮重載其他符號,或者直接寫函數。
returnvector3(self.y*obj.z-obj.y*self.z,self.z*obj.x-self.x*obj.z,self.x*obj.y-obj.x*self.y)
def__str__(self):#供print列印的字元串
returnstr(self.x)+','+str(self.y)+','+str(self.z)
v1=vector3(1,2,3)
v2=vector3(0,1,2)
printv1+v2
printv1-v2
printv1*v2
printv1**v2
結果:
㈡ python 中 numpy 的(2,1)維列向量 為什麼可以乘(2,2)維向量
numpy中直接用 * 即可表示數與向量的乘法,參考python 2.7的一個例子:
inport numpy as np
a = np.array([1,2,3,4]) # 向量
b = 5 # 數
print a*b
++++++++++++
[5,10,15,20]
㈢ 在python中怎麼使用旋轉矩陣實現矩陣的相乘,怎麼表達出旋轉矩陣
矩陣相乘很簡單,你甚至可以自己寫一個,現成的推薦 http://www.numpy.org
三維空間中旋轉的表示:四元數,旋轉矩陣,旋轉向量,角軸,歐拉角
python中貌似沒有Eigen那麼方便的庫,可以使用quaternion,裡面有相應的方法提供他們之間的轉換
㈣ python:如何將列表中的所有項相乘
#-*-coding:utf-8-*-
#py3
'''
用高級函數rece()
'''
fromfunctoolsimportrece
lis=[1,2,3,4,5]
r=rece(lambdax,y:x*y,lis)#對序列lis中元素逐項相乘lambda用法請自行度娘
print(r)
fromfunctoolsimportrece
defadd(x,y):
returnx+y
rece(add,[1,2,3])
#結果是6
㈤ Python 裡面向量該怎樣運算
首先要寫上這一句:
from numpy import *
(寫上這句的前提也得你已經安了numpy)
(1) 定義一個零向量(4維):
>>>a=zeros(4)
>>>a
array([0.,0.,0.,0.])
定義一個List:
b=[1,2,3,4]
(2)向量可直接與List相加:
>>>c=a+b
>>>c
array([1.,2.,3.,4.])
(3)要給向量里每個元素都乘以同一個數:
>>>d=b*[3]
或者:
>>>c=3
>>>d=b*[c]
>>>d
array([3.,6.,9.,12.])
而不能是d=b*3,即要乘的這個數字得是個List形式
(4)兩個向量相除(對應元素相除):
>>>e=[3,2,3,4]
>>>f=d/e
>>>f
array([1.,3.,3.,3.])
㈥ python的乘法怎麼表示
python中的乘法用*表示,切記不可以用中文書寫方式,一定要是全英文的
㈦ python的例題解法
不看numpy一維數組的話,就是len相同的一個列表相同索引值相加吧。
x1=[1,2,3]
x2=[4,5,6]
x3=[]
defadd():
foriinrange(0,len(x1)):
x3.append(x1[i]+x2[i])
returnx3
print(add())
㈧ Python中怎樣計算兩個向量的內積
這是從物理實踐中來,在物理計算中,經常會用到一個向量投影到另一個向量的方向,然後再乘以另一個向量的模.而且這樣的演算法表示固定的物理意義.由於經常會遇到這種問題,於是有人就這樣定義了內積,是為了便於書寫和直觀辨認.一個式子太長或太復雜就會給計算帶來很多的不便,定義了簡便的式子有助有從數學上理解物理.至於為什麼兩個向量的內積是常數,這就是定義,定義成常數罷了.內積的公式還是很簡單的,外積的就復雜得多.
㈨ numpy中怎麼用一個數乘一個向量
numpy中直接用 * 即可表示數與向量的乘法,參考python 2.7的一個例子:
inport numpy as np
a = np.array([1,2,3,4]) # 向量
b = 5 # 數
print a*b
++++++++++++
[5,10,15,20]