创建数组
t1 = np.array([[2,3],[4,5]])
print(t1)
t2 = np.array(range(10)).reshape((2,5))
print(t2)
[[2 3]
[4 5]]
[[0 1 2 3 4]
[5 6 7 8 9]]
查看维度,和单个数据类型
t1 = np.array([[2,3],[4,5]])
print(t1)
print(t1.ndim) # (2,2)形状,维度是2维
print(t1.dtype) # int
[[2 3]
[4 5]]
2
int32
数组保留指定小数位数
# 数组保留指定小数位数
e = np.array([3.234234,5.2342342,8.12323423,7.342342334,9.12323424])
e = np.round(e,3)
print(e)
[3.234 5.234 8.123 7.342 9.123]
修改数据类型
t1 = np.array([[2.234245,5.342342],[4.23423423,5.234235]])
t2 = t1.astype(np.int)
print(t2)
[[2 5]
[4 5]]
形状
a = np.array([[2,3,4],[5,1,7]])
print(a.shape)
a = a.reshape(3,2)
print(a)
(2, 3)
[[2 3]
[4 5]
[1 7]]
变一维数组
a = np.array([[2, 3, 4], [5, 1, 7]])
print(a.flatten()) # 确实是变1维(6)
a = a.reshape((1,6)) # 二维,但是 是形状(1,6)的二维
print(a)
[2 3 4 5 1 7]
[[2 3 4 5 1 7]]
广播计算
# 广播计算
a = np.array([[2,4,1,4],[7,6,2,4]])
print(a+1)
print(a*2)
print(a/2)
[[3 5 2 5]
[8 7 3 5]]
[[ 4 8 2 8]
[14 12 4 8]]
[[1. 2. 0.5 2. ]
[3.5 3. 1. 2. ]]
数组和数组的计算(同形状),对应位置运算
# 数组和数组的计算(同形状),对应位置运算
a = np.array([[2,4,1,4],[7,6,2,4]])
b = np.array([[1,2,3,1],[2,2,3,1]])
print(a+b)
print(a*b)
[[3 6 4 5]
[9 8 5 5]]
[[ 2 8 3 4]
[14 12 6 4]]
数组和数组运算(不同形状),逐行运算
# 数组和数组运算(不同形状),逐行运算
a = np.array([[8,9,6,11],
[4,7,8,12]])
b = np.array([1,2,3,4])
print(a-b)
print(a+b)
[[7 7 3 7]
[3 5 5 8]]
[[ 9 11 9 15]
[ 5 9 11 16]]
数组和数组运算(不同形状),逐列运算
# 数组和数组运算(不同形状),逐列运算
a = np.array([[8,9,6,11],
[4,7,8,12]])
b = np.array([[1],
[2]])
print(a-b)
print(a+b)
[[ 7 8 5 10]
[ 2 5 6 10]]
[[ 9 10 7 12]
[ 6 9 10 14]]
线性代数乘法
a = np.array([[2,4],
[1,2]])
b = np.array([[1,2],
[2,2]])
print(np.matmul(a,b))
[[10 12]
[ 5 6]]