我一直在寻找一种在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怎么定义向量类_python的用户定义向量类相关推荐

  1. python自定义函数找最大值_python – 查找用户定义函数的局部最大值和最小值

    我想要的是 我想找到一个静止点列表,它们的值和位置,以及它们是最小值还是最大值. 我的功能如下: import numpy as np def func(x,y): return (np.cos(x* ...

  2. python如何定义类_Python中类的定义、继承及使用对象实例详解

    本文实例讲述了Python中类的定义.继承及使用对象的方法.分享给大家供大家参考.具体分析如下: Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类 ...

  3. python中的类怎么定义怎么用_python中怎么定义一个类

    什么是类? 类用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下:clas ...

  4. python类定义以及调用_python中如何定义和调用类详解

    类的方法的定义 1.def fun_name(self,...); Pass 2.其中的参数self代表类的实例,在调用方法时由系统自动提供 3.方法定义时必须指明self参数 类的方法的调用 与普通 ...

  5. 在python中、正确的函数定义格式为_Python函数的定义与实现

    1. 函数的介绍 函数是 实现具有特定功能的代码块 Python中预制了许多内置函数,也可以根据自己的需求创建自定义的函数 隐藏实现功能的细节 代码的复用 提高可读性,便与调试 def 函数名(形参1 ...

  6. python函数定义与参数_Python函数的定义方式与函数参数问题实例分析

    本文实例讲述了Python函数的定义方式与函数参数问题.分享给大家供大家参考,具体如下: 涉及内容: 函数的定义方式 函数的文字描述 空操作语句 位置参数 默认参数 关键参数 可变长度参数 函数的定义 ...

  7. python中类的定义和使用_Python中类的定义与使用

    一.类的简述 类时面向对象编程的核心内容.通常把具有相同特征(数据元素)与行为(功能)的事物描述定义为一个类,类是一个抽象的概念,把类实例化既可以得到一个对象. 因此,对象的抽象是类,类的具体化就是对 ...

  8. python如何设计工具类_Python基础之自定义工具类

    class ListHelper: @staticmethod def find_all(target, func_condition): """ 查找列表中满足条件的所 ...

  9. python组合和继承的区别_Python开发之面向对象、类和对象、组合与继承的实例讲解...

    一.面向对象 如何创建一个类 class Xxxx: dic={xxx:xxx,xx:xx,x:x} #属性 def __init__(self,xxx,xxx,xxx): # 定义属性 def ac ...

  10. stl优先队列定义可以吗_C ++ STL | 用户定义的优先级队列比较器

    stl优先队列定义>可以吗 In this article, we are going to see how to write your comparator function for prio ...

最新文章

  1. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器
  2. python编程有哪些-Python编程编译器有哪些比较好用
  3. 【iCore组合式双核心开发板教程】【快速使用手册】
  4. 桌面计算机硬盘打不开,我电脑的磁盘打不开,是什么问题?
  5. 第一节:数据库与数据仓库
  6. python爬取豆瓣前25个影片内容的正则表达式练习
  7. 云栖专辑 | 阿里开发者们的第12个感悟:多维思考,胜过盲目苦干
  8. axure中出现小手_你所不知道的15个Axure使用技巧
  9. matlab 波前像差,波前像差原理及应用
  10. vue树形权限菜单_Vue.js 递归组件实现树形菜单
  11. Mac安装和配置Tomcat的教程
  12. 庖丁解牛之spring源码系列二 spring bean生命周期介绍
  13. java垃圾回收的方法_java垃圾回收的方法都有哪些
  14. Microsoft Remote Desktop 10 - 微软官方免费远程桌面控制 Windows 的软件 APP
  15. Java集合,泛型,枚举详解
  16. 官网下载centos系统
  17. js做gif动画【MovieClip插件】
  18. vue音乐卡住_大神教你解决vue怎么添加音乐【突破措施】
  19. number of lines annotated by git is not equal to number of linus in the file .check file encoding an
  20. 深度学习目标检测在游戏领域的应用

热门文章

  1. datasupport类删除_reiserfs文件系统反删除(Undelete)数据恢复操作的实践
  2. html怎么改默认浏览器,怎样设置默认浏览器?3种更改默认浏览器方法介绍
  3. initialization on demand holder
  4. Intel Cyclone 10 GX 收发器的时钟网络
  5. CF 1016C Vasya And The Mushrooms (DP)
  6. 计算机与科学技术会学机械,计算机科学与技术和机械设计制造及其自动化的区别...
  7. vue中友盟统计---事件跟踪部署
  8. 如何实现幻灯片效果/图片轮播
  9. 安卓设备设置 orientation 最简单的方法
  10. 急需你的意见:句子迷图文日签投票