一次性对二维数组中每个元素进行除法运算
我有一个形状为3X4X4的numpy数组,如下所示:
[[[0 0 0 2]
[0 0 0 0]
[1 0 0 0]
[0 0 0 0]]
[[0 1 0 0]
[0 0 0 0]
[0 0 0 0]
[0 1 1 0]]
[[0 0 0 0]
[0 1 1 0]
[0 0 1 0]
[0 0 0 0]]]
我想把这个数组里面每个4X4的矩阵里的每个数字都除以0.25。然后再对这些值取对数。(也就是说,我是先把每个数组里的所有值都除以0.25,然后再对这个结果取对数)最后的输出应该还是一个3X4X4的矩阵,只是里面的数值发生了变化。有没有什么建议?
3 个回答
2
在编程中,有时候我们会遇到一些问题,想要找到解决方案。StackOverflow是一个很好的地方,大家可以在这里提问和回答问题。这里的内容通常是一些技术讨论,涉及到代码的使用和问题的解决。
在这个平台上,用户可以分享他们的经验,帮助其他人解决编程中的难题。无论是初学者还是有经验的开发者,都能在这里找到有用的信息和建议。
总之,StackOverflow就像一个编程的问答社区,大家可以在这里互相学习,共同进步。
import numpy as np
arr = np.array([[[0, 0, 0, 2],[0, 0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0]], [[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0] ,[0, 1, 1, 0]] ,[[0, 0, 0, 0], [0, 1, 1, 0] ,[0, 0, 1, 0] ,[0, 0, 0, 0]]])
arr /= 0.25
arr = np.log(arr)
3
我看不出这有什么问题
>> import numpy as np
>> a = np.array([[[0, 0, 0, 2],[0, 0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0]], [[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0] ,[0, 1, 1, 0]] ,[[0, 0, 0, 0], [0, 1, 1, 0] ,[0, 0, 1, 0] ,[0, 0, 0, 0]]])
>> a
[[[0, 0, 0, 2], [0, 0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0]],
[[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 0]],
[[0, 0, 0, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 0, 0]]]
>> np.log(a/0.25)
array([[[ -inf, -inf, -inf, 2.07944154],
[ -inf, -inf, -inf, -inf],
[ 1.38629436, -inf, -inf, -inf],
[ -inf, -inf, -inf, -inf]],
[[ -inf, 1.38629436, -inf, -inf],
[ -inf, -inf, -inf, -inf],
[ -inf, -inf, -inf, -inf],
[ -inf, 1.38629436, 1.38629436, -inf]],
[[ -inf, -inf, -inf, -inf],
[ -inf, 1.38629436, 1.38629436, -inf],
[ -inf, -inf, 1.38629436, -inf],
[ -inf, -inf, -inf, -inf]]])
5