学习环境: jupyter
- 1.numpy和列表的比较
import numpy
# %time判断计算所用的时间
# 数组用的时间会比列表用的时间快
%time for i in range(10):myarr_2 = myarr * 2
%time for i in range(10):mylist = [x*2 for x in mylist]
Wall time: 27 ms
Wall time: 974 ms
数组的计算速度比列表要快,而且要更方便
- 2.创建数组
# 创建数组 会自动转换转换成浮点型(默认是浮点型float64)
list_1 = [1,2.88,3.98,6]
arr2 = numpy.array(list_1)
print(arr2)
print(type(arr2))
[1. 2.88 3.98 6. ]
numpy.ndarray
# 当列表中存在字符串,元组,列表时创建数组
tuple_1 = [[666,888,999],1,(1,2),3,'joker']
arr3 = numpy.array(tuple_1)
print(arr3)
[666, 888, 999]) 1 (1, 2) 3 'joker']
- 3.创建二维数组,三维数组
# 创建二维数组
arr_2d = numpy.array([[1,2,3],[4,5,6]])
print(arr_2d)
print(arr_2d.dtype)
[[1 2 3]
[4 5 6]]
a = [1, 2, 3] ; b = [4, 5, 6]; c = [7, 8, 9]
arr_3d = numpy.array([[a,b,c],[a,b,c]])
arr_3d
3x3x2的三维数组
[[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]]
- 4.创建全0和全1数组
# 创建全0的数组
arr4 = numpy.zeros(10,dtype='int64')
print(arr4)
[0 0 0 0 0 0 0 0 0 0]
# 创建全1数组
arr5 = numpy.ones(10,dtype='int64')
print(arr5)
[1 1 1 1 1 1 1 1 1 1]
- 5.创建一个对称数组
# 创建一个对称数组,k表示对称偏移
arr_eye = numpy.eye(5,5)
print(arr_eye)
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
arr_eye_k = numpy.eye(5,5,k=1,dtype='int64')
print(arr_eye_k)
[[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 0 0 0 1]
[0 0 0 0 0]]
- 6.创建等差数组
# 等差数组 0~10 间隔为2
arr_arange = numpy.arange(0,10,2)
print(arr_arange)
[0, 2, 4, 6, 8]
- 7.等分数组
# 等分数组起始x,y 等分 z份
arr_linspace = numpy.linspace(2,20,10,dtype='int64')
print(arr_linspace)
[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]