如何在Python中声明数组?
当前回答
# This creates a list of 5000 zeros
a = [0] * 5000
您可以像使用数组一样,使用[n]符号读取和写入此列表中的任何元素。
它似乎具有与数组相同的随机访问性能。我不能说它如何分配内存,因为它还支持不同类型的混合,包括字符串和对象,如果你需要的话。
其他回答
一些贡献建议python中的数组由列表表示。这是不正确的。Python在标准库模块array "array.array()"中有array()的独立实现,因此将两者混淆是不正确的。列表在python中是列表,所以要小心使用的命名法。
list_01 = [4, 6.2, 7-2j, 'flo', 'cro']
list_01
Out[85]: [4, 6.2, (7-2j), 'flo', 'cro']
list和array.array()之间有一个非常重要的区别。虽然这两个对象都是有序序列,但array.array()是有序齐次序列,而list是非齐次序列。
您可以创建列表并将其转换为数组,或者您可以使用numpy模块创建数组。下面是几个例子来说明这一点。Numpy还使使用多维数组变得更容易。
import numpy as np
a = np.array([1, 2, 3, 4])
#For custom inputs
a = np.array([int(x) for x in input().split()])
您还可以使用使用输入作为矩阵维数的重塑函数将该数组重塑为2X2矩阵。
mat = a.reshape(2, 2)
计算时,使用numpy数组:
import numpy as np
a = np.ones((3,2)) # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3]) # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100) # an array with 100 points beteen (and including) 2 and 3
print(a*1.5) # all elements of a times 1.5
print(a.T+b) # b added to the transpose of a
这些numpy数组可以从磁盘保存和加载(甚至压缩),具有大量元素的复杂计算像c一样快。
多用于科学环境。更多信息请看这里。
你不需要在Python中声明任何东西。你只需使用它。我建议你从http://diveintopython.net开始。
# This creates a list of 5000 zeros
a = [0] * 5000
您可以像使用数组一样,使用[n]符号读取和写入此列表中的任何元素。
它似乎具有与数组相同的随机访问性能。我不能说它如何分配内存,因为它还支持不同类型的混合,包括字符串和对象,如果你需要的话。