numpy——array数组用法

一、基本的用法
1.定义数组:a = np.array([[1,2,3],[4,5,6]])
2.生成全为1的数组:a = np.ones((3,4))
3.生成全为0的数组:a = np.zeros((3,4))
4.生成空数组:a = np.empty((3,4))
5.生成均匀分布的数组:a = np.arange(10,20,2)
6.生成均匀分布的数组并指定形状:a=np.arange(2,14).reshape(3,4)
7.得到数组的类型:a.dtype
8.得到数组的形状:a.shape
9.0-5平均分成101个数(间隔为5/100):np.linspace(0,5,101)
10.生成10-20之间的随机数:np.random.randint(10,20,size=(3,2))
11.生成任意元素的数组:np.full(3,100);np.full((2,3),100)
12.将array转换成列表: list = arr.tolist()
13.array的转置:np.transpose(arr)
14.向上、下取整:np.ceil(a)、np.floor(a)
二、指定数组的类型:
a = np.array([2,3,4],dtype = int)
a = np.array([2,3,4],dtype = ‘int32’)
a = np.zeros((3,4)).astype(float)
三、简单的计算
求和:np.sum(a)
np.sum(a,axis=0)—按列求和
np.sum(a,axis=1)—按行求和
最小值:np.min(a)
最大值:np.max(a)
平均值:np.mean(a);np.mean(a,axis=0/1)
中位数:np.median(a)
累加:np.cumsum(a)
协方差:np.cov(np.array(a).T)
数组对应元素按位置相乘:np.multiply(a,b)
排序:arr = np.sort(a)——由小到大逐行排序
得到升序排列的索引: indices = np.argsort(arr)
获取对应的数据列表:arr[indices]
四、常用操作
删除第2行:np.delete(a,1,axis = 0)
删除多列:np.delete(a,list,axis=1)
设置种子,用于生成随机数:
import random
np.random.seed(seed)
array合并:
a = np.array([[1,2],[3,4]])
b = np.array([[5,6]])
np.concatenate(a,b,axis=0)—上下合并
np.vstack([a,b])
np.row_stack([a,b])
np.concatenate(a,b,axis=None)—合并成一维数组
np.hstack([a,b])—左右合并
np.column_stack([a,b])
切分数组:
np.split(a,3,axis=0)—按行分割,平均分为3部分
np.array_list(a,3,axis=1)—实现不均等分割
np.split(a,(3,))—前三行、后几行分割
np.split(a,(4,),axis=1)—在4、5列之间分割
找出最大的3个元素:
import heapq
a = [1,2,3,4,5]
re1 = map(a.index,heapq.nlargest(3,a))
print(list(re1))—得到3个最大元素的索引
re2 = heapq.nlargest(3,a)—最大的三个元素
nsmallest—最小
按列求非0元素的平均值:
def non_zeros_mean(a):
exist = (a!=0)
num = a.sum(axis=0)—按列
den = exist.sum(axis=0)
return num/den

条件选择:arr1 = arr0[(arr0[:,300]<9)&(arr0[:,301]<23]
求元素的平方和:
a = np.array([0,1,0,3])
sum0 = sum([pow(i,2) for i in a])
条件选择:
train_arr = arr4[(arr4[:,25]!=6.33) & (arr4[:,25]!=10.72)]
array求方差:arr_var = np.var(arr)
array求标准差:arr_std = np.std(arr,ddof=1) 《ddof = 1—求样本的标准差;ddof = 0—求总体的标准差》
array排序:
arr = np.array([3,2,4,5,1,9])
排序:np.sort(arr) 或 arr.sort()
按升序排序并得到索引:indices = np.argsort(arr)
获取对应的数据列表:arr[indices]
多级排序:
from operator import itemgetter
sorted(list_name,key=itemgetter(2))—升序
sorted(list_name,key=itemgetter(2),reverse=True)—降序
数组按行随机打乱顺序
import random
np.random.seed(2020)
arr0= np.random.permutation(arr1) 或 arr0 = np.random.shuffle(arr)
得到训练集、测试集数据
arr_train = arr0[:37114,:]
arr_test = arr0[37114:,:]
四、python中tile的用法
tile(A, reps):tile通过重复给定的次数来构造数组。初始数组是A,重复规则是reps。reps表示数组A需要重复的次数、结果的行数。

a = np.array([0, 1, 2])
b = np.tile(a,2)
c = np.tile(a,(2,2))
d =  np.tile(a, (2, 1, 2))
print(b)
print(c)
print(d)
## 输出:array([0, 1, 2, 0, 1, 2])
## 输出:array([[0 1 2 0 1 2]
                [0 1 2 0 1 2]])
## 输出:array([[[0, 1, 2, 0, 1, 2]],
                [[0, 1, 2, 0, 1, 2]]])
b0 = np.array([[1, 2], [3, 4]])
b1 = np.tile(b0, 2)
b2 = np.tile(b0, (2, 1))
print(b1)
print(b2)
## 输出:array([[1 2 1 2]
                           [3 4 3 4]])
## 输出:array([[1 2]
                           [3 4]
                           [1 2]
                           [3 4]])
c0 = np.array([1,2,3,4])
c1 = np.tile(c0,(4,1))
print(c1)
## 输出:array([[1 2 3 4]
                [1 2 3 4]
                [1 2 3 4]
                [1 2 3 4]])

2.重复数组中的某些部分的若干次数。

np.repeat(3, 4)      
## 输出:array([3, 3, 3, 3])  
x = np.array([[1,2],[3,4]])
np.repeat(x, 2)
## 输出:array([1, 1, 2, 2, 3, 3, 4, 4])
np.repeat(x, 3, axis=1)
## 输出:array([[1, 1, 1, 2, 2, 2],
                [3, 3, 3, 4, 4, 4]])
np.repeat(x, [1, 2], axis=0)
## 输出:array([[1, 2],
                [3, 4],
                [3, 4]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值