numpy函数浅析

文章介绍了numpy库中几个重要的函数用法,包括argsort用于返回排序后的索引,zeros创建指定形状的零矩阵,ravel和flatten将多维数组转换为一维,其中ravel是视图而flatten是副本,shape用于查看数组的维度,以及reshape函数用于改变数组的形状。
摘要由CSDN通过智能技术生成

前言

最近机器学习中用到numpy,发现里面的很多函数,都不太了解,所以总结一下,以加深理解;

numpy 函数

argsort函数

argsort()函数:将数组中的元素从小到大排列,返回对应的index(索引)数组

import numpy as np
x=np.array([1,5,3,-2,6,8,9])
print(x)  ##[ 1  5  3 -2  6  8  9]
print(type(x)) ##<class 'numpy.ndarray'>
y=x.argsort() 
pirnt(y) ##[3 0 2 1 4 5 6]
print(type(y))##<class 'numpy.ndarray'>

解析:x数组中-2是最小的,其下标为3,其他同上;

zeros函数

import numpy as np
print(np.zeros((2,3),dtype = np.int32 ))
[[0 0 0]
 [0 0 0]]

总结:
zeros函数:返回来一个给定形状和类型的用0填充的数组;
zeros(shape, dtype=float, order=‘C’)
shape:形状
dtype:数据类型,可选参数,默认numpy.float64
order:可选参数,c代表与c语言类似,行优先;F代表列优先

ravel和 flatten函数

首先声明两者所要实现的功能是一致的(将多维数组降位一维),这点类似spark中的flatmap,其中ravel中文意思是散开,解开,flatten中文意思是变平;

##flatten函数
import numpy as np
x =np.array([[2,3],[4,5]])
a = x.flatten()
print(a)
a[1] =100
print(a)
print(x)

[2 3 4 5]
[ 2 100 4 5]
[[2 3]
[4 5]]

##ravel函数
import numpy as np
x =np.array([[2,3],[4,5]])
a = x.ravel()
print(a)
a[1] =100
print(a)
print(x)

[2 3 4 5]
[ 2 100 4 5]
[[ 2 100]
[ 4 5]]
总结:numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响原始矩阵,而numpy.ravel()返回的是视图,会影响原始矩阵;

shape函数

shape是查看数据有多少行多少列

import numpy as np
a = np.array([1,2,3,9,5,6,7,8])  #一维数组
print(a.shape[0])  #值为8,因为有8个数据
print(a.shape) 
b = np.array([[1,2,3,9],[5,6,7,8]])  #二维数组
print(b.shape[0])  #值为2,最外层矩阵有2个元素,2个元素还是矩阵。
print(b.shape[1])  #值为4,内层矩阵有4个元素。
print(b.shape)

8
(8,)
2
4
(2, 4)

reshape函数

reshape(1,-1)转化成1行:
reshape(-1,1)转换成1列:
reshape(2,-1)转换成两行:
reshape(-1,2)转化成两列:
reshape(2,4)转化成两行四列:

import numpy as np
x =np.array([[2,3,4,5],[4,5,6,7]])
a = x.reshape(-1,1)
b=x.reshape(1,-1)
c=x.reshape(2,4)
print(a)
print(b)
print(c)

[[2]
[3]
[4]
[5]
[4]
[5]
[6]
[7]]
[[2 3 4 5 4 5 6 7]]
[[2 3 4 5]
[4 5 6 7]]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值