-
2021-01-14 23:54:32
编辑:我用@unutbu的原版答案对代码进行了更多的修改,以简化代码并使所做的工作更清晰。在最新版本中,@staticmethod已被完全删除,并替换为嵌套的一行程序。外部函数和嵌套类已重命名为AutoFloatProperties和_AutoFloatProperties,以反映它们转换和存储指定为浮点值的特殊行为。尽管如此,@unutbu自己使用类装饰器而不是元类的修订答案是一个稍微简单的解决方案,尽管其内部和用法非常相似。def AutoFloatProperties(*props):
'''metaclass'''
class _AutoFloatProperties(type):
# Inspired by autoprop (http://www.python.org/download/releases/2.2.3/descrintro/#metaclass_examples)
def __init__(cls, name, bases, cdict):
super(_AutoFloatProperties, cls).__init__(name, bases, cdict)
for attr in props:
def fget(self, _attr='_'+attr): return getattr(self, _attr)
def fset(self, value, _attr='_'+attr): setattr(self, _attr, float(value))
setattr(cls, attr, property(fget, fset))
return _AutoFloatProperties
class Vector(object):
'''Creates a Maya vector/triple, having x, y and z coordinates as float values'''
__metaclass__ = AutoFloatProperties('x','y','z')
def __init__(self, x=0, y=0, z=0):
self.x, self.y, self.z = x, y, z # values converted to float via properties
if __name__=='__main__':
v=Vector(1,2,3)
print(v.x)
# 1.0
v.x=4
print(v.x)
# 4.0
更多相关内容 -
python的用户定义向量类
2021-01-14 23:54:33我一直在寻找一种在python中处理向量的方法,但在这里或文档中没有找到完全适合我的解决方案。在到目前为止,我为一个向量类得出的结论是:class vec(tuple):def __add__(self, y):if len(self)!=len(y):raise ...我一直在寻找一种在python中处理向量的方法,但在这里或文档中没有找到完全适合我的解决方案。在
到目前为止,我为一个向量类得出的结论是:class vec(tuple):
def __add__(self, y):
if len(self)!=len(y):
raise TypeError
else:
ret=[]
for i,entry in enumerate(self):
ret.append(entry+y[i])
return vec(ret)
def __mul__(self, y):
t=y.__class__
if t == int or t==float:
#scalar multiplication
ret=[]
for entry in self:
ret.append(y*entry)
return vec(ret)
elif t== list or t==tuple or t==vec:
# dot product
if len(y)!=len(self):
print 'vecs dimensions dont fit'
raise TypeError
else:
ret=0
for i,entry in enumerate(self):
ret+=entry*y[i]
return ret
还有一点,为了简短起见,省略掉了。
到目前为止,一切都很好,但我有很多小的具体问题(而且可能会在问题出现时发布更多):是否有数字和序列类型的基类?如何处理它们?在
我怎样才能使这一切变得更Python-y呢?我想学习如何编写好的Python代码,所以如果你发现一些低效或丑陋的东西,请告诉我。在
精确性呢?由于python似乎只有在必要时才从整数转换为浮点,因此输入和输出通常是相同的类型。所以可能会有很大或很小的数字问题,但我现在真的不需要这些。我应该担心精度,还是python会为我这样做?自动转换为最大可能的类型会更好吗?那是哪一个?除此之外会发生什么?在
我想在一个涉及很多向量方程和函数的项目中使用n维向量,我希望能够使用数学教科书中常用的符号。如您所见,这是从元组继承的(为了便于构造、不变性和索引),并且为了使用(+、-、*、…)运算符,大多数内置函数都被重写。它们只在左操作数是vec时才起作用(我能改变它吗?)。乘法包括点积和标量积,如果两个向量都是三维的,pow也用于叉积
测试脚本:
^{pr2}$
在0.135秒内调用50009个函数cProfile.run('testVec()')
在0.064秒内调用100009个函数
-
python中向量怎么表示
2020-12-05 19:07:25python 中的向量怎么表示可以用numpy 库 np.mat([[a],[b],[c]]) 表示一个3*1 列向量 (a,b,c)^Tpython方向向量要怎么表示向量本身属于矢量,有大小也有方向,大小就称为向量的模,向量的方向就是指坐标原点到该向量...python 中的向量怎么表示
可以用numpy 库 np.mat([[a],[b],[c]]) 表示一个3*1 列向量 (a,b,c)^T
python方向向量要怎么表示
向量本身属于矢量,有大小也有方向,大小就称为向量的模,向量的方向就是指坐标原点到该向量坐标点的方向。比如向量A=(m,n)。 向量符号是在英文字母的上方加一个箭头符号。用域功能也可以很容易实现这个要CSS布局HTML小编今天和大家分享。 在大括号中输入域代码“eq \o(→,a
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]
Python怎么创建一个1-100的向量,感觉语法是真的烦。
我感觉你是没有理解向量的定义,跟python语法没关系,向量是表示一组带有方向的数,而计算机无法表示方向,只有用数组的叠加来表示维度。而向量就是代表某个维度上的一组数,所以它就是一行数组或者一列数组,后面就好理解了。
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
python 的array怎样增加向量
python中的list叫做列表,可以通过append方法在列表的末尾添加单个元素 x = [1,2,3] x.append(4) 或者使用extend方法在列表末位添加多个元素,参数就变成了列表 x.append([4,5,6]) 或者使用insert方法在任意位置添加元素。
如何在python列表中查找某个元素的索引
方法一: 利用数组自身的特性 a.index(target), 其中a是目标list,target是需要的下标对应的值。代码如下: 可知索引为2。但是如果a中有多个76元素,这种方法仅仅能获取都第一个匹配的value的下标索引。
方法二:利用enumerate函数。
python多个向量怎么聚合成一个向量
想把多个向量聚合成一个向量,用于多个向量的聚类操作。假如说把十个向将向量相加,然后除以总数,得出中心点,过来另一个向量,计算距离就可以了。 如果你想说的是KMeans这种聚类方法的话,简单给你介绍一下: 类别 聚类算法 非监督学习算法 参数 k值 : 分成的类的数量距离公式 : 计算距离阀值 : 距离大于阀值要重
python3如何构建文本向量
python 如何提取行向量(矩阵)指定范围内几个数据
用切片啊,比如: 复杂的矩阵用numpy库操作更方便。
-
Python实例:向量基本操作
2021-02-10 12:18:57#coding:utf-8'''向量操作'''from functools import reducedef vector_add(v,w):return[v_i + w_i for v_i,w_i in zip(v,w)]def vector_subtract(v,w):return[v_i - w_i for v_i,w_i in zip(v,w)]def vector_sum...#coding:utf-8
'''
向量操作
'''
from functools import reduce
def vector_add(v,w):
return[v_i + w_i for v_i,w_i in zip(v,w)]
def vector_subtract(v,w):
return[v_i - w_i for v_i,w_i in zip(v,w)]
def vector_sum(vectors):
result = vectors[0]
for vector in vectors[1:]:
result = vector_add(result,vector)
return result
def vector_sum2(vectors):
return reduce(vector_add,vectors)
def scalar_multiply(c, v):
return [c * v_i for v_i in v]
def vector_mean(vectors):
n = len(vectors)
return scalar_multiply(1/n,vector_sum(vectors))
def dot(v,w):
return sum(v_i * w_i for v_i,w_i in zip(v,w))
def sum_of_squares(v):
return dot(v,v)
# 计算向量大小
import math
def magnitude(v):
return math.sqrt(sum_of_squares(v))
# 计算两个向量的距离
def squared_distance(v,w):
return sum_of_squares(vector_subtract(v,w))
def distance(v,w):
return math.sqrt(squared_distance(v,w))
v = [1,2,3,4,5,6,7,8,9]
w = [10,11,12,13,14,15,16,17,18]
print('vector add:',vector_add(v,w))
print('vector subtract:',vector_subtract(v,w))
print('vector sum:',vector_sum([v,w]))
print('vector sum2:',vector_sum2([v,w]))
print('vector mean:',vector_mean([v,w]))
print('vector dot:',dot(v,w))
print('vector sum of square:',sum_of_squares(v))
print('magnitude:',magnitude(v))
print('squared distance:',squared_distance(v,w))
print('distance:',distance(v,w))
-
python3 定义向量运算
2018-05-30 11:04:00#定义向量的构造方法 class Vector: def __init__(self,x=0,y=0): self.x=x; self.y=y; ''' __repr__是python的内置方法,他能将一个对象用字符串的形式表达出来 %r用rper()方法处理对象 ... -
Python数学基础之向量定义与向量运算(附代码)
2020-12-17 03:16:04患难与困苦是磨练人格的最高学府。——苏格拉底(公元前470年~公元前399年)Adversity and pinch are the highest institution of higher learning of ... 399)这里,我们使用专门用来处理数组array的Python包NumP... -
python 自定义向量化(vectorized)操作函数
2020-09-02 08:54:38python中已经有不少默认的向量化操作的函数如:±×/之类 那么如何自定义向量化操作函数呢? import numpy as np import pandas as pd X = pd.DataFrame([[1,2], [3,4]]) Y = pd.DataFrame([[2,1], [3,3]]) def ... -
线性代数中单位向量的定义_定义向量| Python的线性代数
2021-01-14 14:16:18线性代数中单位向量的定义Linear algebra is the branch of mathematics concerning linear equations by using vector spaces and through matrices. In other words, a vector is a matrix in n-dimensional space... -
(1)python的数组和向量区别,python数组和向量的互相转换
2020-08-12 22:19:09最近遇到一个数组和向量相关的坑,网上搜了个遍,发现都没有说明白的。记录一下。 1、在做机器学习时,发现有些函数需要向量,这时候需要把数组转化为向量。...一、python中如何表示向量和数组的? ... -
Python Numpy 向量、矩阵的常用创建方法
2018-07-03 11:18:002019独角兽企业重金招聘Python工程师标准>>> ... -
2 向量的运算在Python中的实现
2021-01-13 18:46:45创建 Python Package ==> PlayLA创建 向量类,函数库 ==> Vector.pyfrom ._global import EPSILONimport mathclass Vector:def __init__(self,lst):self._values =list(lst)@classmethoddef zero(cls... -
python中向量指的是什么意思
2021-01-13 18:46:33一、向量是什么在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的... -
使用Numpy定义向量| 使用Python的线性代数
2020-07-14 00:42:03Let's see how we can define a vector using this library: 让我们看看如何使用该库定义向量: 使用Numpy定义矢量的Python代码 (Python code for Defining Vector using Numpy) # Linear Algebra Learning ... -
python numpy定义矩阵行向量与列向量
2020-12-11 09:59:43# 定义行向量 # Method1(直接定义) x1 = np.array([[-3/4,-1/4,-1/8]]) print(x1) # Method2 a = [[-3/4,-1/4,-1/8]] x2 = np.array(a) print(x2) # 定义列向量 # Method1(直接定义) x3 = np.array([[-3/4],[-1/4]... -
Python向量余弦值 Python 求向量的余弦值操作
2021-04-26 18:51:22想了解Python 求向量的余弦值操作的相关内容吗,追求卓越583在本文为您仔细讲解Python向量余弦值的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Python,向量,余弦值,下面大家一起来学习吧。1、余弦... -
python——向量的表示及相关计算
2020-03-18 18:33:38由于python自带的包没有向量这个概念,我们需要自己定义一个向量的类,然后利用这个类进行向量的相关计算。 下面附上相关的程序: from math import acos,pi from math import sqrt from decimal import Decimal,... -
python中 使用列表推导自定义向量的加减乘
2018-02-12 16:56:04# coding=utf-8 class Vector(object): ...根据坐标轴列表输入 创建向量, 并创建该向量所处的空间维度""" def __init__(self, coordinates): super(Vector, self).__init__() try: -
python向量画图
2020-11-21 03:44:29排名第一【python】:排名第三【算法】:排名第四前言在写代码前,先简单的过一下svm的基本原理,如下:svm(support vector machine)简单的说是一个分类器,并且是二类分类器。 vector:通俗说就是点,或是数据。 ... -
Python创建行向量与列向量
2021-09-17 11:43:06Python创建行向量与列向量 X0 = np.array([1,2,3,4,5,6])# 一维向量,不能与矩阵相乘 X0 = X0[:,np.newaxis] # 二维列向量,6*1 # X0 = X0.T # 二维行向量,1*6 Phi_t0tf = np.array([[1,0,0,0,0,0], [0,1,0,0,0,0]... -
计算Python Numpy向量之间的欧氏距离实例
2021-01-14 04:46:07计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:import numpydist = numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))或者直接:dist = numpy.linalg.norm(vec1 - vec2)... -
向量范数与矩阵范数定义和python向量矩阵运算示例
2018-05-31 13:05:04向量范数与矩阵范数定义和python相关运算示例1.范数(norm)的意义要更好的理解范数,就要从函数、几何与矩阵的角度去理解。 我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内... -
python中向量和矩阵维度
2021-04-11 10:24:16np.arang()是 生成一个 行向量,在python和R 中都默认是行向量的,因此求其shape其实第二维可以省略。 -
【python numpy库的使用】向量的加减法
2019-06-16 10:50:01numpy对向量的加法有自动扩充的功能 https://blog.csdn.net/Amy_mm/article/details/89299376 -
Python变量访问权限控制详解
2020-12-26 00:43:05# user/bin/python class Foo: def bar(self): print('ok') def hello(self, name): print("i am %s" % name) foo = Foo() foo.bar() foo.hello('Fred Huang') class Foo: def __init__(self, name, age): ''' 初始... -
python 创建一维的0向量实例
2020-12-30 13:07:08python 创建一维的0向量实例第一种方法:A=[0]*8第二种方法:import numpy as npA=np.zeros(8)以上这篇python 创建一维的0向量实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。... -
4-1 Python学习笔记1_向量、矩阵及数组定义
2020-11-11 22:28:474-1 Python学习笔记1_向量/矩阵及数组定义 1.学习环境 python安装:网络上都有相应的安装教程,安装完之后打开cmd命令查看python版本(直接输入python即可),我的是3.7.3 安装完后需要一个编译器,可以选择IDE等,... -
python定义类的简单用法
2020-12-17 04:48:29python定义的类使用方法: 使用“obj=类名()”语句将类实例化,然后用“obj.函数名”就可以调用类里面定义的各种函数了 示例如下: 将Bili类实例化,然后就可以使用类里的函数 内容扩展: 类的定义 #!/usr/bin/env... -
python array 行向量 列向量
2019-04-26 09:50:29import numpy as np x = np.array([[1,2,3],[4,5,6]]) 输出x [[1 2 3] [4 5 6]] 转为行向量 x=x.reshape(-1) 输出行向量 [1 2 3 4 5 6] 转为列向量 x=x.reshape((-1,1)) 输出列向量 [[1] [2] [3] [4] [5] [6]] -
python 向量取整数_随机整数向量| 使用Python的线性代数
2020-07-21 22:39:13Defining a Vector using list 使用列表定义向量 Defining Vector using Numpy 使用Numpy定义向量 Random Integer Vector is a type of vector having a random integer value at each entry. S... -
python创建一个向量和矩阵
2019-11-20 21:27:26创建一个向量 import numpy as np #创建一个行向量 vector_row = np.array([1,2,3]) #创建一个列向量 vector_column = np.array([[1],[2],[3]]) print(vector_row) print(vector_column) out: [1 2 3] [[1] [2] [3...