numpy入门总结

numpy创建数组

  1. 常规方法创建
np.array(shape, dtype=None)
#dtype默认情况下为保存序列中对象所需的最小类型
np.arange(start,end,step)
  1. 特殊方法
np.empty(shape,dtype)
#得到一个指定形状,数据类型且未初始化的数组,即数组元素为随机值
np.zeros(shape,dtype)
np.ones(shape,dtype)
np.eye(n)
#创建一个N*N的矩阵,对角线为1,其余为0

假设存在一个数组t:
1.若要修改数组数据类型可以使用:

t.astype()

2.若要修改浮点数小数位数,可以使用:

np.round(t,2#即保留t数组中的小数点后两位

对“轴”的理解

1.在二维数组中:
axis=0指的是行
axis=1指的是列

2.在三位数组中:
axis=0指的是块
axis=1指的是行
axis=2指的是列

3.shape函数的使用

np.shape()
#读取矩阵的长度
t.shape
t.shape[0]
#当t是一位数组时可以使用上述方法求的一位数组元素个数
#当t是一个二维数组则返回一个元组表示行数和列数
#t是三位数组同理

numpy读取和存储数据

1.np.loadtxt

numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False)
#fname文件名
#comments=‘#’行开头为#就会自动跳过
#delimiter=‘,’指定数据间的分隔符号
#skiprows=n跳过前n行
#usecols=(0,2)只使用0,2两列数据
#unpack:为True时会把每一列当成一个向量输出, 而不是合并在一起

numpy索引和切片

1.一位数组

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[4] #索引(注意是从0开始的)
Out[4]: 4

arr[3:6] #切片
Out[6]: array([3, 4, 5])

arr_old = arr.copy()
 #因为数组具有广播性质,所以使用copy函数可以保证更改新数组时原始数组不被更改

2.二维数组

arr1 = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9],
                 [10,11,12]])

arr1[0]
Out[13]: array([1, 2, 3])

arr1[1,2]
#在二维数组取某一个点
Out[14]: 6
#取某一行arr1[1,:]
#取连续多行arr1[1:,:]
#取不连续多行arr1[[0,2,3]]
#取某一列arr1[:,1]
#取连续多列arr1[:,1:]
#取不连续的多列arr1[:,[0,3]]
#取多行多列arr1[0:2,0:2]
#取不相邻的多个点arr1[[0,1],[2,3]]则取到(0,2),(1,3)

numpy数值修改

1.直接修改

arr1 = np.arange(0, 24).reshape(4, 6)
# 使用数组的索引和切片查找值,并修改值
arr1[:, 2:5] = 10

2.布尔索引

# 找到值
# 修改值
arr1[arr1 < 8] = 0

3.三元运算

np.where(条件, x, y)
# 数组中符合条件(布尔索引)的赋值x,不符合的赋值y

4.裁剪

np.clip(a, min, max)
# a 是数组
# min 数组a中元素小于min的用min赋值
# max 数组a中元素大于max的用max赋值

clip和where有返回值,所以需要一个变量去接收

numpy数组的拼接

np.vstack(t1,t2)#竖直拼接
np.hstack(t1,t2)#水平拼接
np.vsplit(t1,t2)
np.hsplit(t1,t2)

数组行列交换

t[[1:2],:]=t[[2:1],:]

numpy生成随机数

在这里插入图片描述

numpy的一些函数汇总

# 统计函数

# 求和函数sum
# axis不设置默认对整个数组进行求和计算
sum = np.sum(arr)
# axis=0  沿纵轴
sum_1 = np.sum(arr,axis=0)
# axis = 1 沿横轴
sum_2 = np.sum(arr,axis=1)
# cumsum()也是计算数组求和,不过是计算数组的累计和,包括每次累计的情况
cumsum_1 = np.cumsum(arr)
cumsum_2 = np.cumsum(arr,axis=0)
cumsum_3 = np.cumsum(arr,axis=1)

# mean()计算数组的均值
mean_1 = np.mean(arr)
mean_2 = np.mean(arr,axis=0)
mean_3 = np.mean(arr,axis=1)

# std() 计算数组的标准差
std_1 = np.std(arr)
std_2 = np.std(arr,axis=0)
std_3 = np.std(arr,axis=1)

# var()计算数组的方差
var_0 = np.var(arr)
var_1 = arr.var(axis=0)
var_2 = arr.var(axis=1)

# min(),max()计算数组的最小值和最大值
print(np.min(arr))
print(np.min(arr,axis=0))
print(np.max(arr,axis=1))

# 重复和去重
arr = np.array([[22,33,22],[44,22,66]])
print(np.unique(arr))
print(np.tile(arr,2))
print(np.repeat(arr,2,axis=0))

# 转置和逆矩阵,视图,共轭转置
matr = np.mat('1,2,3,4;4,5,6,7;7,8,9,0')
print(matr.T)
print(matr.I)
print(matr.H)

# sort() argsort() 排序 排序下标

print(np.sort(arr))
print(np.sort(arr,axis=0))
print(np.argsort(arr))

print(np.median(x))  # 对所有数取中值
print(np.median(x,axis=0))  # 沿行方向取中值
print(np.median(x,axis=1))  # 沿列方向取中值

a.ptp()#求极差

t.max()
t.min()
#得到的是该数

np.argmax(t,axis=0)
np.argmin(t,axis=1)
#dedaode是该数所处的位置

numpy中转置函数

t.transpose()
t.T
t.swapaxes(1,0)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值