作为pythonlist的成员打印numpy数组
我正在试验numpy阵列,我有一个非常简单的例子:作为pythonlist的成员打印numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我正在试验numpy阵列,我有一个非常简单的例子: list = [2, 3] list.append(np.array([3.2, 9.0, 7.6])) 如果我使用printlist,它会打印:[2,3,数组[3.2,9,7.6]] 但是如果我使用printlist[-1],它只打印[3.29.7.6] 有人能为我解释一下,如果我将numpy数组作为python列表的最后一个元素打印,为什么它打印时没有数组、括号和数字之间的comas? 非常感谢这似乎是因为print函数在其参数上隐式调用
list = [2, 3]
list.append(np.array([3.2, 9.0, 7.6]))
如果我使用printlist,它会打印:[2,3,数组[3.2,9,7.6]]
但是如果我使用printlist[-1],它只打印[3.29.7.6]
有人能为我解释一下,如果我将numpy数组作为python列表的最后一个元素打印,为什么它打印时没有数组、括号和数字之间的comas?
非常感谢这似乎是因为print函数在其参数上隐式调用了u str 但是,如果在列表中嵌入了对象,为了表示列表中的内容,将调用列表中所有元素的
a = np.linspace(0, 10, 11)
print(a)
# [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
print(repr(a))
# array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
您可以在打印时将数组强制转换为列表,而数组不会显示:
print([a]) # not good
# array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
print([list(a)]) # better
# [[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]]
这似乎是因为print函数隐式地在其参数上调用了_str 但是,如果在列表中嵌入了对象,为了表示列表中的内容,将调用列表中所有元素的
a = np.linspace(0, 10, 11)
print(a)
# [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
print(repr(a))
# array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
您可以在打印时将数组强制转换为列表,而数组不会显示:
print([a]) # not good
# array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
print([list(a)]) # better
# [[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]]
这是因为numpy数组在打印时看起来像一个列表 但是试试这个:
>>> import numpy as np
>>> l = [2, 3]
>>> l.append(np.array([3.2, 9.0, 7.6]))
>>> isinstance(l[-1], list)
False
>>> l2 = [3, 2]
>>> isinstance(l2, list)
True
您将测试数组实际上不是列表。这是因为numpy数组在打印时看起来像列表 但是试试这个:
>>> import numpy as np
>>> l = [2, 3]
>>> l.append(np.array([3.2, 9.0, 7.6]))
>>> isinstance(l[-1], list)
False
>>> l2 = [3, 2]
>>> isinstance(l2, list)
True
您将测试数组实际上不是一个列表。python中的对象通常有两种不同的方法,它们返回自己的字符串表示以供打印 它们是str和repr,它们有不同的用途,你可以阅读 要打印某些内容,首先必须将其转换为字符串。正常情况下,print将尝试使用_str___进行此转换 在列表上执行打印操作会导致调用列表。_ustr_uuuu,然后它会尝试将所有内部元素转换为字符串以进行打印。列表用于转换这些元素的调用是_repr_; 因此,当您打印一个列表时,列表会得到每个元素的_repr__,但当您只打印该元素时,打印会得到该元素的_str 您看到的是numpy数组中的uu repr_u_u和u str_u_u之间的差异 输出:
'[1 2 3]'
'array([1, 2, 3])'
python中的对象通常有两种不同的方法,它们返回自己的字符串表示以供打印 它们是str和repr,它们有不同的用途,你可以阅读 要打印某些内容,首先必须将其转换为字符串。正常情况下,print将尝试使用_str___进行此转换 在列表上执行打印操作会导致调用列表。_ustr_uuuu,然后它会尝试将所有内部元素转换为字符串以进行打印。列表用于转换这些元素的调用是_repr_; 因此,当您打印一个列表时,列表会得到每个元素的_repr__,但当您只打印该元素时,打印会得到该元素的_str 您看到的是numpy数组中的uu repr_u_u和u str_u_u之间的差异 输出:
'[1 2 3]'
'array([1, 2, 3])'