2022年 11月 9日

python如何创建二维数组

关于python中的二维数组,主要有list和numpy.array两种。好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的。
两者可以相互转化。下边是两者区别

数组list

  1. >>import numpy as np
  2. >>a=[[1,2,3],[4,5,6],[7,8,9]]
  3. >>a
  4. #这个是list的形式
  5. [[1,2,3],[4,5,6],[7,8,9]]
  6. >>type(a)
  7. <type 'list'>
  8. >>a[1][1]
  9. 5
  10. >>a[1]
  11. [4,5,6]
  12. >>a[1][:]
  13. [4,5,6]

这里需要注意的不能具体到个位的索引

  1. >>a[1,1]"""相当于a[1,1]被认为是a[(1,1)],不支持元组索引"""
  2. Traceback (most recent call last):
  3. File "<stdin>", line 1, in <module>
  4. TypeError: list indices must be integers, not tuple
  5. >>a[:,1]
  6. Traceback (most recent call last):
  7. File "<stdin>", line 1, in <module>
  8. TypeError: list indices must be integers, not tuple

numpy.array

  1. array=([[1,2,3],
  2. [4,5,6],
  3. [7,8,9]])
  4. >>b[1][1]
  5. 5
  6. >>b[1]
  7. array([4,5,6])
  8. >>b[1][:]
  9. array([4,5,6])
  10. >>b[1,1]
  11. 5
  12. >>b[:,1]
  13. array([2,5,8])

list转化为array

  1. #将list转化为numpy.array
  2. >>b=np.array(a)"""List to array conversion"""
  3. >>type(b)
  4. <type 'numpy.array'>
  5. >>b

怎么定义二维数组?两种方法:直接定义和间接定义

直接定义

  1. matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  2. matrix[2][2] = 9
  3. print(matrix)

间接定义

  1. matrix = [[0 for i in range(3)] for i in range(3)]
  2. matrix[2][2] = 9
  3. print(matrix)

添加二维数组

  1. 添加
  2. matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  3. i=2
  4. j=2
  5. matrix[i][j] = 9
  6. matrix.append([1,1,1])
  7. print(matrix)

具体怎么添加的如下

  1. matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  2. i=2
  3. j=2
  4. matrix[i][j] = 9
  5. matrix.append([i,i,i])
  6. print(matrix)