Array of arrays (Python/NumPy)

前端 未结 4 1453
北荒
北荒 2021-01-01 12:56

I am using Python/NumPy, and I have two arrays like the following:

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

And I would like to create a new array

相关标签:
4条回答
  • 2021-01-01 13:12

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

    a.tolist()

    tolist method mentioned above will return the nested Python list

    0 讨论(0)
  • 2021-01-01 13:17

    If the file is only numerical values separated by tabs, try using the csv library: http://docs.python.org/library/csv.html (you can set the delimiter to '\t')

    If you have a textual file in which every line represents a row in a matrix and has integers separated by spaces\tabs, wrapped by a 'arrayname = [...]' syntax, you should do something like:

    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))
    
    0 讨论(0)
  • 2021-01-01 13:22

    It seems strange that you would write arrays without commas (is that a MATLAB syntax?)

    Have you tried going through NumPy's documentation on multi-dimensional arrays?

    It seems NumPy has a "Python-like" append method to add items to a NumPy n-dimensional array:

    >>> 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]])
    

    It has also been answered already...

    From the documentation for MATLAB users:

    You could use a matrix constructor which takes a string in the form of a matrix MATLAB literal:

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

    Please give it a try and tell me how it goes.

    0 讨论(0)
  • 2021-01-01 13:26

    You'll have problems creating lists without commas. It shouldn't be too hard to transform your data so that it uses commas as separating character.

    Once you have commas in there, it's a relatively simple list creation operations:

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

    When testing we get:

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

    And if we test with indexing it works correctly reading the matrix as made up of 2 rows and 2 columns:

    array3[0][1]
    [4, 5, 6]
    
    array3[1][1]
    [10, 11, 12]
    

    Hope that helps.

    0 讨论(0)
提交回复
热议问题