您的位置:首页 > 编程语言 > Python开发

numpy入门——基础运算

2017-08-15 16:37 281 查看

基础运算

导入numpy包 并以np的形式简写

import numpy as np


数组加减乘除法运算

# 创建一个一维数组a 以列表为数据源 并指定数据类型为np.int  创建一个一维数组b 使用arange的方式
a = np.array([2,3,4,5],dtype=np.int)
b = np.arange(start = 4,stop = 8,step = 1)


计算 a+b

c = a+b
print(c)
# 获取c中的数据类型
print(c.dtype)
# 获取shape
print(c.shape)
# 获取元素个数
print(np.size(c))
# 获取维度
print(c.ndim)


array([ 6,  8, 10, 12])
dtype('int32')
(4,)
4
1


计算 a-b

d = a-b
print(d)
# 获取d中的数据类型
print(d.dtype)
# 获取shape
print(d.shape)
# 获取元素个数
print(np.size(d))
# 获取维度
print(d.ndim)


array([-2, -2, -2, -2])
dtype('int32')
(4,)
4
1


计算axb

e = a*b
print(e)
print(e.size)
print(e.ndim)
print(e.shape)
print(e.dtype)


array([ 8, 15, 24, 35])
4
1
(4,)
dtype('int32')


计算a/b

f = a/b
print(f)
print(f.dtype)
print(f.size)
print(f.ndim)
print(f.shape)


array([ 0.5       ,  0.6       ,  0.66666667,  0.71428571])
dtype('float64')
4
1
(4,)


常用函数计算

print(np.sin(a))
print(np.cos(a))
print(np.tan(a))
print(a**5)


array([ 0.90929743,  0.14112001, -0.7568025 , -0.95892427])
array([-0.41614684, -0.9899925 , -0.65364362,  0.28366219])
array([-2.18503986, -0.14254654,  1.15782128, -3.38051501])
array([  32,  243, 1024, 3125], dtype=int32)


比较计算

print(a < 4)
print(a > 3)
print(a == 3)
print(a != 4)


array([ True,  True, False, False], dtype=bool)
array([False, False,  True,  True], dtype=bool)
array([False,  True, False, False], dtype=bool)
array([ True,  True, False,  True], dtype=bool)


矩阵的基础运算

# 创建矩阵 以二维数组为数据源
a = np.array([[1,2,3,4],[5,6,7,8]])
b = np.arange(start = 1,stop = 9,step = 1).reshape((2,4))
# 矩阵的加法
print(a+b)

# 矩阵的减法
print(a-b)

# 矩阵的乘法
print(a*b)

# 矩阵的除法
print(a/b)

# 矩阵的点乘
print(a.dot(b.T))
print(b.dot(a.T))


array([[ 2,  4,  6,  8],
[10, 12, 14, 16]])
array([[0, 0, 0, 0],
[0, 0, 0, 0]])
array([[ 1,  4,  9, 16],
[25, 36, 49, 64]])
array([[ 1.,  1.,  1.,  1.],
[ 1.,  1.,  1.,  1.]])
array([[ 30,  70],
[ 70, 174]])
array([[ 30,  70],
[ 70, 174]])


求取矩阵中的特定值如:最大值、最小值、平均值等

arr_random = np.random.randint(100,size=(10,10))
print(arr_random)
# 计算最小值
print(arr_random.min())
# 计算每一行中的最小值  并保持维度
print(arr_random.min(axis=1,keepdims=True))
# 计算每一列中的最小值,并保持维度
print(arr_random.min(axis=0,keepdims=True))


3
array([[ 5],
[14],
[10],
[20],
[ 5],
[11],
[23],
[ 3],
[12],
[18]])
array([[ 3, 12,  5,  8, 20, 17, 20,  5, 14, 16]])


# 计算最大值
print(arr_random.max())
# 计算每一行中的最大值,并保持维度
print(arr_random.max(axis=1,keepdims = True))
# 计算每一列中的最大值,并保持维度
print(arr_random.max(axis=0,keepdims = True))


99
array([[99],
[77],
[83],
[82],
[80],
[97],
[92],
[84],
[74],
[92]])
array([[56, 95, 85, 92, 98, 92, 99, 97, 93, 88]])


# 计算平均值
print(arr_random.mean())
# 计算每一列中的平均值 并保持维度
print(arr_random.mean(axis=0,keepdims = True))
# 计算每一行中的平均值 并保持维度
print(arr_random.mean(axis=1,keepdims=True))


49.549999999999997
array([[ 25.6,  50.6,  32.7,  51.8,  66.3,  47. ,  53.8,  53.9,  59.2,
54.6]])
array([[ 52.7],
[ 47.1],
[ 40.8],
[ 57.3],
[ 30.3],
[ 61.7],
[ 61.3],
[ 49.3],
[ 41.8],
[ 53.2]])


# 计算标准差
print(arr_random.std())
# 计算每一行的标准差
print(arr_random.std(axis=1,keepdims=True))
# 计算每一列的标准差
print(arr_random.std(axis=0,keepdims=True))


27.393201711373575
array([[ 35.47407504],
[ 20.39828424],
[ 20.01899098],
[ 19.70304545],
[ 24.86785073],
[ 33.89705002],
[ 19.78408451],
[ 26.4425793 ],
[ 25.07508724],
[ 25.91061559]])
array([[ 15.82529621,  24.74752513,  25.00819866,  28.20567319,
23.90836674,  22.78596059,  30.25822202,  27.58423463,
25.24202844,  22.56634663]])


# 求和
print(arr_random.sum())
# 计算每一行的和
print(arr_random.sum(axis=1,keepdims=True))
# 计算每一列的和
print(arr_random.sum(axis=0,keepdims=True))


4955
array([[527],
[471],
[408],
[573],
[303],
[617],
[613],
[493],
[418],
[532]])
array([[256, 506, 327, 518, 663, 470, 538, 539, 592, 546]])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  numpy