【问题标题】:Converting a python list into numpy.ndarray recursively递归地将python列表转换为numpy.ndarray
【发布时间】:2020-03-29 02:54:31
【问题描述】:

我今天遇到了一个奇怪的问题。希望能解释一下np.array 的行为:

l1 = np.array([[1], [1]])
type(l1)
Out[43]: numpy.ndarray
l2 = np.array([[1, 2], [1]])
type(l2)
Out[44]: numpy.ndarray

但是:

type(l1[0])
Out[45]: numpy.ndarray
type(l2[0])
Out[47]: list

有什么想法吗?

【问题讨论】:

    标签: python-3.x numpy-ndarray


    【解决方案1】:

    这种行为是由于两个(或准确地说是所有)元素不在同一维度中。

    考虑:

    l1 = np.array([[1], [1, 2]])
    print(type(l1[0]))
    l2 = np.array([[1, 2], [1, 2]])
    print(type(l2[0])) 
    

    将输出(现在)预期

    <class 'list'>
    <class 'numpy.ndarray'>
    

    为了获得numpy.ndarray“一路向下”,所有元素(和嵌套元素)必须具有相同的维度。

    【讨论】:

    • 我今天学到了一些新东西。实际上,这是有道理的,否则运算符reshape 将不会被很好地定义。谢谢。
    猜你喜欢
    • 2012-02-14
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    相关资源
    最近更新 更多