【问题标题】:Why is my 2d array converted into list two list objects?为什么我的二维数组转换为两个列表对象?
【发布时间】:2021-03-31 14:35:17
【问题描述】:
import numpy as np
array1 = np.array([[0, 1, 7, 9], [1, 2, 2, 2, 3]])
print(array1)
b = np.array([[10,20,34],[54,43,75]])
print(b)
arr = np.array([[0,1,7,9,12,18],[19,20,24,26,30]])
print(arr)
print(type(array1))
print(type(b))
print(type(arr))

输出 - 第一个和第三个数组给出不同的输出,即使它们的创建方式相似

[list([0, 1, 7, 9]) list([1, 2, 2, 2, 3])]

[[10 20 34]
 [54 43 75]]

[list([0, 1, 7, 9, 12, 18]) list([19, 20, 24, 26, 30])]

<class 'numpy.ndarray'>

<class 'numpy.ndarray'>

<class 'numpy.ndarray'>

【问题讨论】:

  • 当您执行np.array([[0, 1, 7, 9], [1, 2, 2, 2, 3]]) 时,您认为该数组的维度 (.shape) 应该是多少?请记住,Numpy 数组必须是矩形的。
  • 知道了。谢谢。

标签: python arrays numpy


【解决方案1】:

二维数组 1 和 3 与数组 2 之间存在差异。请注意列表大小的差异。二维数组 1 和 3 是不是矩形的,而数组 2 是。 如果您看到VisibleDeprecationWarning,您可以通过将dtype=object 添加到非矩形二维数组来消除此错误。 请参阅下面提供的 cmets。

More on numpy arrays

More on VisibleDeprecationWarning

import numpy as np
# ARRAY 1
# 4 items, 5 items
array1 = np.array([[0, 1, 7, 9], [1, 2, 2, 2, 3]], dtype=object)
print(array1)

# ARRAY 2
# 3 items, 3 items
b = np.array([[10,20,34],[54,43,75]])
print(b)

# ARRAY 3
# 6 items, 5 items
arr = np.array([[0,1,7,9,12,18],[19,20,24,26,30]], dtype=object)
print(arr)

【讨论】:

    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2020-11-10
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多