python中a and b什么意思_Python中a-= b和a = a-b之间的区别 - python

我最近应用了this解决方案来平均每N行矩阵。

尽管该解决方案总体上可行,但将其应用于7x1阵列时遇到了问题。我注意到问题出在使用-=运算符时。

举一个小例子:

import numpy as np

a = np.array([1,2,3])

b = np.copy(a)

a[1:] -= a[:-1]

b[1:] = b[1:] - b[:-1]

print a

print b

输出:

[1 1 2]

[1 1 1]

因此,对于数组,a -= b与a = a - b产生不同的结果。我认为到目前为止,这两种方式是完全相同的。有什么区别?

我提到的用于汇总矩阵中每N行的方法的效果如何? 7x4矩阵而不是7x1阵列?

参考方案

注意:从1.13.0版开始,在共享内存的NumPy数组上使用就地操作不再是问题(请参阅详细信息here)。这两个操作将产生相同的结果。此答案仅适用于NumPy的早期版本。

在计算中使用数组时对其进行突变可能会导致意外结果!

在问题的示例中,用-=减法会修改a的第二个元素,然后立即在对a的第三个元素的操作中使用该修改后的第二个元素。

以下是a[1:] -= a[:-1]逐步发生的情况:

a是具有数据[1, 2, 3]的数组。

我们对此数据有两个视图:a[1:]是[2, 3],a[:-1]是[1, 2]。

就地减法-=开始。从a[:-1]的第一个元素减去a[1:]的第一个元素1。这已将a修改为[1, 1, 3]。现在我们有了a[1:]是数据[1, 3]的视图,而a[:-1]是数据[1, 1]的视图(数组a的第二个元素已更改)。

a[:-1]现在是[1, 1],并且NumPy现在必须从a[1:]的第二个元素中减去其第二个元素1(现在不再是2!)。这使a[1:]成为值[1, 2]的视图。

a现在是一个具有[1, 1, 2]值的数组。

b[1:] = b[1:] - b[:-1]不会出现此问题,因为b[1:] - b[:-1]首先创建一个新数组,然后将该数组中的值分配给b[1:]。在减法期间它不会修改b本身,因此视图b[1:]和b[:-1]不会更改。

一般建议是,如果一个视图重叠,则应避免在一个视图和另一个视图之间进行就地修改。这包括运算符-=,*=等,并在通用函数(例如out和np.subtract)中使用np.multiply参数写回数组之一。

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…python:ConfigParser对象,然后再阅读一次 - python

场景:我有一个配置文件,其中包含要执行的自动化测试的列表。这些测试是长期循环执行的。   配置文件的设计方式使ConfigParser可以读取它。由于有两个三个参数,因此我需要通过每个测试。现在,此配置文件由script(s1)调用,并且按照配置文件中的列表执行测试。Script(s1)第一次读取配置,并且在每次测试完成后都会执行。阅读两次的要求:由于可能会…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值