关于python中的二维数组,主要有list和numpy.array两种。好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的。
两者可以相互转化。下边是两者区别
数组list
- >>import numpy as np
- >>a=[[1,2,3],[4,5,6],[7,8,9]]
- >>a
- #这个是list的形式
- [[1,2,3],[4,5,6],[7,8,9]]
- >>type(a)
- <type 'list'>
- >>a[1][1]
- 5
- >>a[1]
- [4,5,6]
- >>a[1][:]
- [4,5,6]
这里需要注意的不能具体到个位的索引
- >>a[1,1]"""相当于a[1,1]被认为是a[(1,1)],不支持元组索引"""
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: list indices must be integers, not tuple
- >>a[:,1]
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: list indices must be integers, not tuple
numpy.array
- array=([[1,2,3],
- [4,5,6],
- [7,8,9]])
- >>b[1][1]
- 5
- >>b[1]
- array([4,5,6])
- >>b[1][:]
- array([4,5,6])
- >>b[1,1]
- 5
- >>b[:,1]
- array([2,5,8])
list转化为array
- #将list转化为numpy.array
- >>b=np.array(a)"""List to array conversion"""
- >>type(b)
- <type 'numpy.array'>
- >>b
怎么定义二维数组?两种方法:直接定义和间接定义
直接定义
- matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- matrix[2][2] = 9
- print(matrix)
间接定义
- matrix = [[0 for i in range(3)] for i in range(3)]
- matrix[2][2] = 9
- print(matrix)
添加二维数组
- 添加
- matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- i=2
- j=2
- matrix[i][j] = 9
- matrix.append([1,1,1])
- print(matrix)
具体怎么添加的如下
- matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- i=2
- j=2
- matrix[i][j] = 9
- matrix.append([i,i,i])
- print(matrix)