一次性分割数组数组中的每个项目

时间:2014-04-13 00:37:12

标签: python logging numpy

如图所示,我有一个形状为3X4X4的numpy aray:

[[[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]]]

我想将数组中每个4 X4矩阵中的每个数字除以0.25。 然后我想记录所有这些值。 (因此我将每个数组中的所有值除以.25,然后记录该数字的对数) 输出应该是相同的3x4x4矩阵,只是更改了值。 任何建议

3 个答案:

答案 0 :(得分:5)

您可以这样做:

numpy.log(yourNumpyArray / 0.25)

numpy会做正确的事(将每个元素除以0.25)

了解详情:

答案 1 :(得分: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]]])

答案 2 :(得分:2)

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)