创建数组的方法
import numpy as np
a1 = np.array([1, 3, 2])
a2 = np.array([[1, 3, 2], [4, 3, 6],[6,8,5]])
print(a2.shape) # 输出这是几行几列的数组
print(a2.size) # 输出元素个数
a = np.arange(0, 1, 0.1) #生成一串数字,start是开始,stop是结束,step是步长,包括start不包括stop。
print(a)
#创建2*3的整形型空矩阵,只分配内存
b = np.empty(shape=(2,3))
print(b)
#创建四行五列,值为全部为0的矩阵
c = np.zeros(shape=(4,5))
print(c)
#创建四行三列,值全部为1的矩阵
d = np.ones(shape=(4,3))
print(d)
#zeros和ones方法只能创建0和1元素的矩阵,而full方法能通过fill_value参数来生成指定元素的数组。
#创建三行三列,值全部为6的矩阵
e1 = np.full(shape=(3,3),fill_value=6)
print(e1)
#创建长度为4,值为全部为pi的矩阵
e = np.full(4, np.pi)
print(e)
#创建一个对角线全为1的数组
f = np.eye(4)
print(f)
结果:
数组索引
"""
数组索引主要用来获得数组中的数据,在numpy中索引可以分为两大类:一维数组索引和二维数组索引,
一维数组索引和列表索引几乎相同,二维数组的索引则有很大的区别。
"""
#一维数组索引:
import numpy as np
a = np.array([1,2,3,4,5,6])
print(a[0],a[-1],a[0:3],a[:3],a[3:],a[0:5:2])
"""
二维数组的索引格式是中括号中逗号前选择行,逗号后选择列。而在选择行和列的时候可以传入列表,或者使用冒号来进行切片和索引。
"""
b = np.array([[1,2,3,4],
[6,7,8,9],
[10,11,12,13]])
print(b)
print(b.shape)
print(b[2]) #输出第三行所有元素
print(b[1:3]) #输出二三行所有元素
print(b[2][3]) #先找出第三行所以元素,再从第三行输出第四个元素
print(b[1:3][0:1]) #先找出二三行,再从二三行中输出其中的第一行
print(b[1,2]) #逗号前面的是行,后面的是列,所以输出二行三列的值
print(b[1:3,2:4])
"""
切片的本质是传入一个连续的列表,所以我们还可以传入列表来获得相应位置的元素
"""
print(b[[0,2],[1,2]]) #取0行、2行,1列、2列对应的元素。
结果:
统计函数
"""
Numpy中提供了常用的数学统计函数,通过哲学统计函数我们很容易求得最大值、最小值、均值、方差等。
"""
import numpy as np
a = np.array([[1,2,3,4],
[4,3,2,1],
[5,6,7,8],
[8,7,6,5]])
# amin方法返回最小值
amin_line = np.amin(a,axis=0) #按列返回最小值,当axis=1时按行返回最小值,axis=None时返回整体的最小值。
print(amin_line)
# amax方法返回最大值
amax_row = np.amax(a,axis=1) #按行返回最大值,当axis=0时按列返回最大值,axis=None时返回整体的最大值。
print(amax_row)
# median用来计算中位数
medain_row = np.median(a,axis=1) #返回每行的中位数,当axis=0时是列,axis=None时是返回整体的中位数
print(medain_row)
# var方法用来计算方差
var_line = np.var(a,axis=0) #返回每行的方差,当axis=1时是行,axis=None时是返回整体的方差
print(var_line)
# std方法是用来计算标准差
std_line = np.std(a,axis=0) #返回每行的标准差,当axis=1时是行,axis=None时是返回整体的标准差
print(std_line)
结果: