从原有数据装换为数组
a_list = list(range(20))
b = np.array(a_list)
print(b)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
生成数组
a = np.zeros(20,dtype=int)
print(type(a))
print(a.dtype)
<class 'numpy.ndarray'>
int32
生成多维数组
a = np.zeros([5,4],dtype=float)
print(type(a))
print(a)
<class 'numpy.ndarray'>
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
生产带有初始化值的多维数组
a = np.full([3,3],9.9)
print(a)
[[9.9 9.9 9.9]
[9.9 9.9 9.9]
[9.9 9.9 9.9]]
仿照生成数组
b = np.zeros_like(a)
print(b)
b = np.ones_like(a)
print(b)
b = np.full_like(a,3.3)
print(b)
[[9.9 9.9 9.9]
[9.9 9.9 9.9]
[9.9 9.9 9.9]]
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[3.3 3.3 3.3]
[3.3 3.3 3.3]
[3.3 3.3 3.3]]
生成随机数组
import random
rad = random.randint(1,50)
print(rad)
nprad = np.random.random((5,5))
print(nprad)
[[0.88665299 0.15469618 0.92227034 0.5504737 0.04441958]
[0.19598922 0.19546181 0.93763495 0.5003918 0.06118416]
[0.25083197 0.63792372 0.25348255 0.54956645 0.80567947]
[0.07546286 0.16186728 0.04644008 0.09530208 0.72491862]
[0.46018823 0.14911618 0.41774599 0.68126355 0.22812571]]
生成一个多维数组的随机数
nprad = np.random.randint(0,10 ,(5,5))
print(nprad)
[[1 0 3 9 3]
[7 7 9 8 0]
[6 7 8 9 3]
[6 9 9 5 9]
[2 2 9 2 4]]
范围取值
l = list(range(0,10))
print(l)
npl = np.arange(0,20,3)
print(npl)
npr = np.linspace(0,3,10)
print(npr)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[ 0 3 6 9 12 15 18]
[0. 0.33333333 0.66666667 1. 1.33333333 1.66666667
2. 2.33333333 2.66666667 3. ]
生成单位矩阵(5*5维单位矩阵)
e = np.eye(5)
print(e)
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
访问数组中的元素
嵌套列表中的数组访问
var = [[1,2,3],[4,5,6],[7,8,9]]
print(var)
print(var[0][0])
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1
访问数组中的元素
var1 = np.full((4,4),8.9,dtype=float)
print(var1)
print(var1[0][0])
print(var1[0,0])
[[8.9 8.9 8.9 8.9]
[8.9 8.9 8.9 8.9]
[8.9 8.9 8.9 8.9]
[8.9 8.9 8.9 8.9]]
8.9
8.9
数组切片访问
var2 = np.array(var)
print(var2)
print(var2[:2,:2])
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2]
[4 5]]
数组属性
#数组维度
print(var2.ndim)
#shape
print(var2.shape)
#大小
print(var2.size)
#数组类型
print(var2.dtype)
#每个元素所占的字节数
print(var2.itemsize)
2
(3, 3)
9
int32
4
数组运算 + - * /
var = np.array(list(range(10)))
print(var)
var1 = var +10
print(var1)
var2 = var -10
print(var2)
var = np.full((3,3),2.3,dtype=float)
print( var * 10)
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1]
[[23. 23. 23.]
[23. 23. 23.]
[23. 23. 23.]]
统计类型运算
#求和
数组一维求和
var = np.full(10,3.6)
s = np.sum(var)
print(s)
36.0
数组多维求和
var = np.array([[1,2,3],[4,5,6],[7,8,9]])
s = np.sum(var)#效率很高,推荐使用
s = sum(var)
print(s)
[12 15 18]
求最大者
m = np.max(var)
print(m)
9
比较
var = np.array(range(10))
print(var)
print(var>3)
print(var!=3)
[0 1 2 3 4 5 6 7 8 9]
[False False False False True True True True True True]
[ True True True False True True True True True True]
数组中所有的元素大于-1
print(np.all(var >-1))
True
生产一个3*10的数组
var = np.full((2,10),1,dtype=float)
print(var)
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]
变形
print(var.reshape(4,5))
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
aaa