Numpy 基础

注:以下代码中np为numpy库的简写

一、创建array

# create array with datetype int16
a = np.array([[1,2,3],[2,4,6]], dtype=np.int16)
# all zeros array
b=np.zeros((2,2),dtype=int)
#all ones array
c=np.ones((3,4), dtype=np.int)
#numpy range1~10之间,公差为1的等差数列
d=np.arange(1,10,1)
#生成[0,4)之间步长为1的等差数列
e=np.arange(0,4, 2)
#linespace 生成1~10之间只有2个数的等差数列
f=np.linspace(1,10,2,dtype=np.int)
#输出结果
print('数组 a:', a)
print('全0数组b:', b)
print('全1数组c:', c)
print('[1,10) 步长为1的等差数列 d:', d)
print('[0,4)步长为2的等差数列 e:', e)
print('[1,10) 等分为5份的数列 f', f)

终端结果

二、运算

#四则运算
a=np.array([2,4,6])
b=np.arange(1,4)
c=a+b
d=a-b
e=a*b
f=a/b
print('a:', a)
print('b:', b)
print('加法 c:', c)
print('减法 d:', d)
print('乘法 e:', e)
print('除法 f:', f)
#<, >, ==逻辑运算
g=a>2
h=a<6
j=a==4
print('大于 g:', g)
print('小于 h:', h)
print('等于 j:', j)
#指数运算、三角函数
k=a**2
l=np.sin(a)
print('平方 k:', k)
print('正弦 l:', l)
#矩阵乘法
m=np.transpose(np.array([1,1,1]))#矩阵转置
n=np.dot(a,m)#矩阵乘法
print('矩阵乘法 n:', n)

输出结果:

三、统计运算

#求和,最小值,最大值
a=np.arange(12).reshape((3,4))
print('a:', a)
print('所有元素之和:', np.sum(a))#行向求和
print('每行元素之和:', np.sum(a, axis=1))#行向求和
print('最小值:', np.min(a))#求最小值
print('每行最小值:', np.min(a, axis=1))#行向求最小值
print('最大值:', np.max(a))#求最大值
print('每行最大值:', np.max(a, axis=1))#行向求最大值
print('最小值索引', np.argmin(a))
print('最大值索引', np.argmax(a))
#平均值、中位数
print('平均值', np.mean(a))
print('每一行的平均值', np.mean(a, axis=1))
print('中位数', np.median(a))
print('每一列的中位数', np.median(a, axis=0))
#非0元素的索引
print('大于6的元素: ', a>6)
mask=np.nonzero(a>6)
print('非0元素所在的行: ', mask[0])
print('非0元素所在的列: ', mask[1])

终端输出:

 四、array取值

# array 取值
a=np.arange(2,14).reshape((3,4))
print('a: ', a)
print('取索引为1的行:', a[1, :])
print('取第1行,列数范围为[0,2)的值:', a[1,0:2])
print('取索引为2的列:', a[:,2])
print('取索引为[1,2]的元素:', a[1,2])
print('矩阵flatten:', a.flatten())

 四、array合并

#array合并
a=np.ones((1, 3))
b=np.zeros((1,3))
print('a: ', a,'shape :', a.shape)
print('b: ', b)
print('a,b列向合并:', np.vstack((a,b)))
print('a,b行向合并:', np.hstack((a,b)))
print('a,a,b,b 列向合并:', np.concatenate((a,a,b,b), axis=0))
#矩阵拓维
c=np.arange(3)
print('c', c, '原来的shape :', c.shape)
print(c[:,np.newaxis], 'shape: ', c[:,np.newaxis].shape)

五、array分割

#array分割
a=np.arange(12).reshape((3,4))
print('a: ', a)
print('将a按列等分为两部分', np.split(a,2,axis=1))
print('将a按列分为三部分', np.array_split(a,3,axis=1))
print('将a按行等分为三部分', np.split(a,3,axis=0))
02-11 01:19