使用numpy append或array append之间的差异 - Python

时间:2018-02-23 09:31:46

标签: python numpy

我有这个基本的例子来理解numpy append方法。

distances=[]
for i in range (8):
    distances = np.append(distances, (i))
print(distances)

distances=[]
for i in range (8):
    distances.append(i)
print(distances)

输出给了我2个数组但是格式不同(或者我对不同格式的理解)。

[ 0.  1.  2.  3.  4.  5.  6.  7.]
[0, 1, 2, 3, 4, 5, 6, 7]

两个阵列的确切区别是什么?为什么输出不同?

2 个答案:

答案 0 :(得分:2)

你的第二个方法是纯python并且不使用任何numpy,所以类型以list([])开头并保持这种方式,因为list.append()也返回一个列表。它包含整数,因为这是你从range获得的,而你的代码中的任何内容都不会改变它们。

第一种方法使用numpy的append method返回一个ndarray,它默认使用浮点数。这也解释了为什么返回的数组包含浮点数。

答案 1 :(得分:1)

第一个代码

distances=[]
for i in range (8):
    distances = np.append(distances, (i))
print(distances)

导致distances成为arrayfloat。而第二个代码

distances=[]
for i in range (8):
    distances.append(i)
print(distances)

导致distances成为listint

arrary是一个numpy类型(主要区别:更快,所有项目具有相同的类型),而list是python-internal(主要区别:无numpy工作,可以保持任何混合类型)。