首页 > 解决方案 > 如何创建一个仅包含具有特定形状的 inf 的数组?

问题描述

这是一个 Matlab 向量:a = [inf(m,1);ones(m,1)]

我试图以 python 方式创建一个类似的对象。

我试过这个:

import numpy as np

a = np.stack((np.tile(np.array([np.inf]), (m, 0))),np.ones((m,0)))

m例如,通过在控制台中进行更改5并尝试使用 PyCharm 查看它,我收到了以下消息:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydev_comm\server.py", line 34, in handle
    self.processor.process(iprot, oprot)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\thrift.py", line 266, in process
    self.handle_exception(e, result)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\thrift.py", line 254, in handle_exception
    raise e
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\thrift.py", line 263, in process
    result.success = call()
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\thrift.py", line 228, in call
    return f(*(args.__dict__[k] for k in api_args))
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydev_bundle\pydev_console_utils.py", line 359, in getArray
    return pydevd_thrift.table_like_struct_to_thrift_struct(array, name, roffset, coffset, rows, cols, format)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_thrift.py", line 602, in table_like_struct_to_thrift_struct
    return TYPE_TO_THRIFT_STRUCT_CONVERTERS[type_name](array, name, roffset, coffset, rows, cols, format)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_thrift.py", line 377, in array_to_thrift_struct
    array, array_chunk, r, c, f = array_to_meta_thrift_struct(array, name, format)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_thrift.py", line 476, in array_to_meta_thrift_struct
    bounds = (array.min(), array.max())
  File "C:\Users\Azerty\PycharmProjects\OptionsHedgeFund\venv37\lib\site-packages\numpy\core\_methods.py", line 32, in _amin
    return umr_minimum(a, axis, None, out, keepdims, initial)
ValueError: zero-size array to reduction operation minimum which has no identity

它出什么问题了?

标签: python-3.xmatlabnumpy

解决方案


因此,如果我正确理解了您的预期结果,您可能会这样做来生成矩阵。

m = 5 #or whatever

a = np.ones((2, m)) #create a matrix 2 x m of ones
a[0] = np.inf #replace first row with infinites

a是:

array([[inf, inf, inf, inf, inf],
       [ 1.,  1.,  1.,  1.,  1.]])

推荐阅读