数组的数组(Python/NumPy)

bogh5gae  于 2022-12-25  发布在  Python
关注(0)|答案(4)|浏览(154)

我使用的是Python/NumPy,有两个如下所示的数组:

array1 = [1 2 3]
array2 = [4 5 6]

我想创建一个新数组:

array3 = [[1 2 3], [4 5 6]]

并向其追加项。因此,例如,如果要追加的新项是:

array4 = [7 8 9]
array5 = [10 11 12]

那么现在array 3将是一个具有两行和两列的数组,如下所示:

array3= [[1 2 3], [4 5 6]
         [7 8 9], [10 11 12]]

我似乎有问题,因为我的数组元素没有用逗号分隔。

hgtggwj0

hgtggwj01#

写没有逗号的数组似乎很奇怪(这是MATLAB syntax吗?)
你试过NumPy's documentation on multi-dimensional arrays吗?
NumPy似乎有一个“类似Python”的append方法,可以向NumPy n维数组添加元素:

>>> p = np.array([[1,2],[3,4]])

>>> p = np.append(p, [[5,6]], 0)

>>> p = np.append(p, [[7],[8],[9]],1)

>>> p
array([[1, 2, 7], [3, 4, 8], [5, 6, 9]])

它还具有been answered already ...
documentation for MATLAB users
你可以使用一个矩阵构造函数,它接受一个矩阵MATLAB文字形式的字符串:

mat("1 2 3; 4 5 6")

matrix("[1 2 3; 4 5 6]")

请给予一试,告诉我结果如何。

dwbf0jvd

dwbf0jvd2#

创建不带逗号的列表时会遇到问题。转换数据使其使用逗号作为分隔符应该不难。
一旦你有逗号在那里,它是一个相对简单的列表创建操作:

array1 = [1,2,3]
array2 = [4,5,6]

array3 = [array1, array2]

array4 = [7,8,9]
array5 = [10,11,12]

array3 = [array3, [array4, array5]]

测试时,我们得到:

print(array3)

[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]

如果我们使用索引进行测试,它可以正确阅读由2行和2列组成的矩阵:

array3[0][1]
[4, 5, 6]

array3[1][1]
[10, 11, 12]

希望能有所帮助。

pprl5pva

pprl5pva3#

如果文件中只有用制表符分隔的数值,请尝试使用csv库:http://docs.python.org/library/csv.html(可以将分隔符设置为“\t”)
如果你有一个文本文件,其中每一行代表矩阵中的一行,并且整数由空格\制表符分隔,并由'arrayname = [...]'语法 Package ,你应该做如下操作:

import re
f = open("your-filename", 'rb')
result_matrix = []
for line in f.readlines():
    match = re.match(r'\s*\w+\s+\=\s+\[(.*?)\]\s*', line)
    if match is None:
        pass # line syntax is wrong - ignore the line
    values_as_strings = match.group(1).split()
    result_matrix.append(map(int, values_as_strings))
pexxcrt2

pexxcrt24#

a=np.array([[1,2,3],[4,5,6]])
a.tolist()

上面提到的tolist方法将返回嵌套的Python列表。

相关问题