如何在 numpy 里面自定义 array 元素的数据类型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Sequencer
V2EX    Python

如何在 numpy 里面自定义 array 元素的数据类型

  •  
  •   Sequencer 2015 年 9 月 28 日 3698 次点击
    这是一个创建于 3763 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我需要把一堆点阵放入一个 array 里面,然后点阵信息有坐标(User.SomeClass)和强度(np.complex),就是坐标的结构我是用 class 定义在 User 文件里面的,然而还是会给我返回
    TypeError: data type not understood
    难道是 python 用另外的东西来定义数据结构?
    18 条回复    2015-09-29 23:19:17 +08:00
    luoluoluo
        1
    luoluoluo  
       2015 年 9 月 28 日
    代码贴出来,或者 go SO. http://stackoverflow.com/questions/ask
    facat
        2
    facat  
       2015 年 9 月 28 日 via Android
    array 不能用任意类型做数组元素
    Sequencer
        3
    Sequencer  
    OP
       2015 年 9 月 28 日
    @facat 谢了,那有啥替代方案了?
    @luoluoluo 就是因为这个原因代码写的卡在一半的地方,大致就是我上面描述的意思
    deanguqiang
        4
    deanguqiang  
       2015 年 9 月 28 日
    用二维 array 代替?
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       2015 年 9 月 28 日
    Sequencer
        6
    Sequencer  
    OP
       2015 年 9 月 28 日
    @zhuangzhuang1988 嗯嗯,理解了。谢谢
    @deanguqiang 谢谢,已经用序列化的方式解决了!
    BooksE
        7
    BooksE  
       2015 年 9 月 28 日
    任意元素的话,matlab 里面 cell 可以满足你.
    Sequencer
        8
    Sequencer  
    OP
       2015 年 9 月 28 日 via iPhone
    @BooksE 正是因为 matlab 效率太低了才转 py 的
    facat
        9
    facat  
       2015 年 9 月 28 日
    @Sequencer 为什么要在 array 中加入自己定义的元素,你需要进行哪些矩阵操作?还有, matlab 计算效率比 python 高很多,你认为 matlab 效率在哪方面效率低?
    sivacohan
        10
    sivacohan  
    PRO
       2015 年 9 月 28 日 via Android
    pytable
    h5py
    benatsh
        11
    benatsh  
       2015 年 9 月 28 日
    可以利用 Dtypes 解决你的问题
    BooksE
        12
    BooksE  
       2015 年 9 月 29 日
    @Sequencer 嗯...那倒是
    @facat Matlab 读大文件效率低,然后循环是一生的痛.
    Sequencer
        13
    Sequencer  
    OP
       2015 年 9 月 29 日
    @facat 光线追踪算法 二叉树 每道光 30s 上千束光加上镜子多了就可以边睡觉边听风扇吹了
    facat
        14
    facat  
       2015 年 9 月 29 日 via Android
    @Sequencer 实际上就算 numpy 的 array 支持你的自定义数据类型,进行矩阵运算前你还得为你定义的类型重载运算符,太不方便。
    facat
        15
    facat  
       2015 年 9 月 29 日 via Android
    @BooksE matlab 新版本对循环做了优化,不会慢。最重要的是, matlab 得优势在于向量计算。你把循环优化成向量计算的形式就回发现计算效率很高。
    Sequencer
        16
    Sequencer  
    OP
       2015 年 9 月 29 日
    @facat 现在程序的瓶颈在于追光的效率问题,每经过一个 lens 就要计算投射反射,计算之后就是两束光,然后对两束光分别追,这样的就只有一个二叉树下来,所以程序就很慢了。
    因为做科研,不是学专业计算机的,所以算法之类的都是自己想的,也不知道怎么优化
    BooksE
        17
    BooksE  
       2015 年 9 月 29 日
    @facat 哪个版本对循环做了优化?我用的 2014b 循环性能还是很差.而且有些操作根本就向量化不了啊.
    facat
        18
    facat  
       2015 年 9 月 29 日
    @BooksE 我用 2014a 就觉得循环已经很快了。可能你的问题与循环无关。其实 python 的科学计算效率并不高,调试不如 matlab 方便,除非工程应用不建议用于数值计算。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1933 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:01 PVG 08:01 LAX 16:01 JFK 19:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86