- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 NumPy 完全陌生,并尝试了教科书代码。不幸的是,在一定规模的计算下,NumPy 结果会搞砸。代码如下:
import sys
from datetime import datetime
import numpy
def pythonsum(n):
a = range(n)
b = range(n)
c = []
for i in range(len(a)):
a[i] = i**2
b[i] = i**3
c.append(a[i]+b[i])
return c
def numpysum(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c
size = int(sys.argv[1])
start = datetime.now()
c=pythonsum(size)
delta = datetime.now()-start
print "The last 2 elements of the sum",c[-2:]
print "PythonSum elapsed time in microseconds", delta.microseconds
start = datetime.now()
c=numpysum(size)
delta = datetime.now()-start
print "The last 2 elements of the sum",c[-2:]
print "NumPySum elapsed time in microseconds", delta.microseconds
当大小 >= 1291 时结果为负我正在使用 python 2.6、MacOSX 10.6、NumPy 1.5.0有什么想法吗?
最佳答案
开始 Numpy 1.5 ?
“实践时刻 - 添加向量”中的介绍性示例只能在允许长整数的 64 位平台上运行。否则会返回错误结果:
The last 2 elements of the sum [-2143491644 -2143487647]
为了解决这个问题,将幂函数中的整数转换为 float ,这样浮点值就会被转发。结果:速度提高了 10 倍
$ python vectorsum.py 1000000
The last 2 elements of the sum [9.99995000008e+17, 9.99998000001e+17]
PythonSum elapsed time in microseconds 3 59013
The last 2 elements of the sum [ 9.99993999e+17 9.99996999e+17]
NumPySum elapsed time in microseconds 0 308598
更正的示例:
import sys
from datetime import datetime
import numpy
def numpysum(n):
a = numpy.arange(n) ** 2.
b = numpy.arange(n) ** 3.
c = a + b
return cdef pythonsum(n): a = range(n)
b = range(n)
c = []
for i in range(len(a)):
a[i] = i ** 2. # notice the dot (!)
b[i] = i ** 3.
c.append(a[i] + b[i])
return csize = int(sys.argv[1])
start = datetime.now()
c = pythonsum(size)
delta = datetime.now() - start
print "The last 2 elements of the sum", c[-2:]
print "PythonSum elapsed time in microseconds", delta.seconds, delta.microseconds
start = datetime.now()
c = numpysum(size)
delta = datetime.now() - start
print "The last 2 elements of the sum", c[-2:]
print "NumPySum elapsed time in microseconds", delta.seconds, delta.microseconds
代码可以在此处的pastebin中找到http://paste.ubuntu.com/1169976/
关于python - numpy 初学者数组普通 python 与 numpy 向量 : faulty results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12138782/
我在旧的 Inspiron 6400 计算机(GeForce 7300 笔记本电脑版)上安装了 Lubuntu 19.04,通过网络草稿编辑器教我儿子 Scratch。每次我通过 Firefox 打开
我有一个数据集,其中包含一列日期和时间值以及另一列包含一些测量值( float )。然而,在一些测量过程中,发生了错误,导致了一些奇怪的条目——下面的例子(这些包括 datetime 对象的重复部分,
我已经编写了一个服务器,它应该是一个终端聊天应用程序(仅用于练习)。为了读取传入的消息,我为每个客户端创建了一个线程,其唯一目的是读取传入的文本... 但是,这个函数似乎执行以下操作:如果终端输入/输
如果 T 类型的 key 不是有效键,我想抛出 domain_error 类型的异常。但我不知道如何将任何类型 T 转换为字符串,只要 T::operator std::string() 被定义,例如
我的响应式网站有几个问题。我的第一个问题很简单:横幅包裹在 Logo 下方。 我想要实现的是类似于 St. Louis Zoo 网站的内容,随着页面变小, Logo 和横幅图像(乌龟)保持在同一行。他
我正在将代码从 STM32L0 转移到 STM32L4。该项目在 L0 上运行良好,但在使用其中一个功能时在 L4 上运行良好......处理器立即进入硬故障,在我打开调试 session 后立即(我
我对 NumPy 完全陌生,并尝试了教科书代码。不幸的是,在一定规模的计算下,NumPy 结果会搞砸。代码如下: import sys from datetime import datetime im
我看到其他人遇到了同样的问题,但我开始相信我的快速文件设置有更深层次的问题,因为其他解决方案无法解决它。 我的想法是拥有一个主页,然后为每个项目添加文件夹。这是我的文件夹结构: index.js 中的
对于 SO 来说似乎是一个有效的问题, 我正在使用 Node.JS 的库 node-redis 执行多原子事务,在我的 IBM Bluemix 的日志结果中,我收到以下错误: Unhandled re
我是一名优秀的程序员,十分优秀!