创建一个np的数组。
例子:
import numpy as np# 创建一个列表a = [1,2,3,4]# 用列表创建一个numpy数组b = np.array(a)print('a的类型',type(a))print(a)print('b的类型',type(b))print(b)
结果:
a的类型 <class 'list'>
[1, 2, 3, 4]
b的类型 <class 'numpy.ndarray'>
[1 2 3 4]
列表和numpy数组的比较:
从形式上看,列表的元素之间用逗号分隔,numpy数组间的元素用空格分隔。
为什么说在数学运算上numpy数组比列表更好用?
一是:numpy数组运算时针对数组中的元素,列表是针对整个列表,不能方便地处理里面的元素,如果要处理,一般需要循环去除列表中元素进行处理。
例子:
import numpy as np# 创建一个列表a = [1,2,3,4]# 用列表创建一个numpy数组b = np.array(a)a1 = a + ab1 = b + ba2 = a * 3b2 = b * 3print('a的类型',type(a))print('a1是 ',a1)print('b的类型',type(b))print('b1是 ',b1)print('a2是 ',a2)print('b2是 ',b2)
结果:
a的类型 <class 'list'>
a1是 [1, 2, 3, 4, 1, 2, 3, 4]
b的类型 <class 'numpy.ndarray'>
b1是 [2 4 6 8]
a2是 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
b2是 [ 3 6 9 12]
二是:列表中的元素是一维的,即使里面嵌套列表,也是一维的。而numpy数组可以轻松实现多维数组的处理。
例子:
import numpy as np# 创建一个列表a = [[1,2,3],[4,5,6],[7,8,9]]# 用列表创建一个numpy数组b = np.array(a)a2 = a * 2b2 = b * 2print('a是 ',a)print('b是 \n',b)print('a2是 ',a2)print('b2是 \n',b2)
结果:
a是 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b是
[[1 2 3]
[4 5 6]
[7 8 9]]
a2是 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
b2是
[[ 2 4 6]
[ 8 10 12]
[14 16 18]]