计算化学公社

 找回密码 Forget password
 注册 Register
Views: 8194|回复 Reply: 10
打印 Print 上一主题 Last thread 下一主题 Next thread

[程序/脚本开发] 求助关于python中norm的使用问题

[复制链接 Copy URL]

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

跳转到指定楼层 Go to specific reply
楼主
各位老师好, 假如 一个点 在1fs中位移量的计算 , 我是这样想的
0fs 时, 粒子坐标 在a = [29.890001   16.35        0.32999998]
1fs 时, 粒子运动到 b = [29.980001   15.900001    0.29000002]
那么 x1-x2 , y1-y2, z1-z2   可表示为 b - a = [ 9.0000153e-02 -4.4999981e-01 -3.9999962e-02]
然后根据两点间 距离公式 d=√[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]   可求得位移


此处,  我想用 np.linalg.norm 对 b - a 进行计算  :
           np.linalg.norm((b-a),axis=1,ord = 2,keepdims=True)  为啥不好使呢?  结果为 0.46065155  ,结果不对, 理论上不是一样的吗?  请各位大佬解答
由衷的感谢每一位给与过我帮助的人

1187

帖子

5

威望

2869

eV
积分
4156

Level 6 (一方通行)

2#
发表于 Post on 2021-1-21 22:54:48 | 只看该作者 Only view this author
你确定这个没报错?一共就1个轴,哪来的axis=1

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

3#
 楼主 Author| 发表于 Post on 2021-1-21 23:01:50 | 只看该作者 Only view this author
snljty 发表于 2021-1-21 22:54
你确定这个没报错?一共就1个轴,哪来的axis=1

我只是取了一个点 ,实际上很多个点, 主要是这个结果为啥是不对的呢?老师
由衷的感谢每一位给与过我帮助的人

1043

帖子

0

威望

4188

eV
积分
5231

Level 6 (一方通行)

4#
发表于 Post on 2021-1-21 23:21:12 来自手机 | 只看该作者 Only view this author
直接np.linalg.norm(b-a)不香吗?另外确保a和b都是np.array类型

1187

帖子

5

威望

2869

eV
积分
4156

Level 6 (一方通行)

5#
发表于 Post on 2021-1-21 23:27:47 | 只看该作者 Only view this author
少年爱吃地三鲜 发表于 2021-1-21 23:01
我只是取了一个点 ,实际上很多个点, 主要是这个结果为啥是不对的呢?老师

你看dtype是np.float32还是np.float64。这个结果偏差不大。另外,确认是numpy的ndarray。不要叫老师~

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

6#
 楼主 Author| 发表于 Post on 2021-1-22 00:18:06 | 只看该作者 Only view this author
granvia 发表于 2021-1-21 23:21
直接np.linalg.norm(b-a)不香吗?另外确保a和b都是np.array类型

都是的, 不值得错在哪
由衷的感谢每一位给与过我帮助的人

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

7#
 楼主 Author| 发表于 Post on 2021-1-22 00:18:33 | 只看该作者 Only view this author
snljty 发表于 2021-1-21 23:27
你看dtype是np.float32还是np.float64。这个结果偏差不大。另外,确认是numpy的ndarray。不要叫老师~

偏差有点大, 正解应该是0.21219985275274666
由衷的感谢每一位给与过我帮助的人

1187

帖子

5

威望

2869

eV
积分
4156

Level 6 (一方通行)

8#
发表于 Post on 2021-1-22 00:25:39 | 只看该作者 Only view this author
少年爱吃地三鲜 发表于 2021-1-22 00:18
偏差有点大, 正解应该是0.21219985275274666

没开平方吧?

362

帖子

7

威望

3426

eV
积分
3928

Level 5 (御坂)

9#
发表于 Post on 2021-1-22 00:44:32 | 只看该作者 Only view this author
把axis=1改成=0就好了,因为python的编号是从0开始编的。另外python函数里带=的参数都是可选参数,有默认值,不一定要指定,所以按照四楼说的那样写就没问题了。

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

10#
 楼主 Author| 发表于 Post on 2021-1-22 00:55:23 | 只看该作者 Only view this author

我是睿智......
由衷的感谢每一位给与过我帮助的人

376

帖子

0

威望

2754

eV
积分
3130

Level 5 (御坂)

尊贵的地三鲜骑士

11#
 楼主 Author| 发表于 Post on 2021-1-22 00:55:51 | 只看该作者 Only view this author
Freeman 发表于 2021-1-22 00:44
把axis=1改成=0就好了,因为python的编号是从0开始编的。另外python函数里带=的参数都是可选参数,有默认值 ...

解决了  谢谢!
由衷的感谢每一位给与过我帮助的人

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-25 00:38 , Processed in 0.228004 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list