Numpy

Numpy

NumPy 是数值计算的扩展包,Pandas是做数据处理。

NumPy 是 Python 的一个外部模块,它提供了一个多维数组(ndarray)数据类型,以及关于多维数组的操作,NumPy 已经成为其他大数据和机器学习模块的基础。

Pandas是基于Numpy写的,它是Numpy的升级版本。

  1. np.arange():

函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是6,步长为1。
参数个数情况: np.arange()函数分为一个参数,两个参数,三个参数三种情况
1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数


#一个参数 默认起点0,步长为1 输出:[0 1 2]
a = np.arange(3)
 
#两个参数 默认步长为1 输出[3 4 5 6 7 8]
a = np.arange(3,9)
 
#三个参数 起点为0,终点为3,步长为0.1 输出[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4 1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9]
a = np.arange(0, 3, 0.1)
  1. np.zero(), np.ones(), np.empty:

在给数组赋初始值的时候,经常会用到0数组,而Python中,我们使用zero()函数来实现。

ones函数可以创建任意维度和元素个数的数组,其元素值均为1;
empty一样,只是它所常见的数组内所有元素均为空,没有实际意义,所以它也是创建数组最快的方法。
zeros、ones、empty的使用方法差不多

创建一个一维数组时,只需要一个参数就可以了,代表数组长度。

import numpy as np
a = np.zeros([2,4])
print(a)

print()

b = np.ones([2,4])
print(b)
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]]

[[1. 1. 1. 1.]
 [1. 1. 1. 1.]]

在默认的情况下,zeros创建的数组元素类型是浮点型的,如果要使用其他类型,可以设置dtype参数进行声明

  • np.argsort():
    含义:先进行排序,后原来元素所在的位置索引
    np.argsort(a, axis=-1, kind=‘quicksort’, order=None)
import numpy as np
x=np.array([1,4,3,-1,6,9])
print(x.argsort())
[3 0 2 1 4 5]

如代码,argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出。

  • np.random.rand():
    通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
import numpy as np
print(np.random.rand())
print(np.random.rand(1))
print(np.random.rand(1,1))
print(np.random.rand(2,2))

print(np.random.rand(3,3,3))#有几个数生成几维数组
0.7723986771623469
[0.90801039]
[[0.74932592]]
[[0.30660971 0.49377846]
 [0.26730439 0.12077014]]
 
[[[0.68246842 0.11959874 0.28999176]
  [0.33480446 0.84117217 0.48405719]
  [0.5629278  0.91784423 0.74722585]]

 [[0.30410509 0.22919032 0.12917304]
  [0.02025868 0.93309791 0.55408805]
  [0.9760141  0.35419366 0.50546059]]

 [[0.85970509 0.18936411 0.71980603]
  [0.78452612 0.20441561 0.79112366]
  [0.78806191 0.3976977  0.73671144]]]
  • np.matmul():
    原型: numpy.matmul(a, b, out=None)
    如果两个参数a , b 都是2维的,做普通的矩阵相乘。
import numpy as np
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
x = np.matmul(a, b)
print(x)
[[4 1]
 [2 2]]
  • np.random.permutation(): 随机排列序列
    如果x是整数,则随机置换np.arange(x),如果x是一个多维数组,它只会沿着它的第一个索引洗牌。

例1:对0到10 的数据进行随机排序

np.random.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6]) # random

例2:对一维数组进行随机排序

np.random.permutation([1, 4, 9, 12, 15])
array([15,  1,  9,  4, 12]) # random

例3:对二维数组进行随机排序

arr = np.arange(9).reshape((3, 3))
np.random.permutation(arr)
array([[6, 7, 8], # random
       [0, 1, 2],
       [3, 4, 5]])
  • np.mean():
    mean()函数功能:求取均值, 经常操作的参数为axis
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(np.mean(a))
print(np.mean(a, axis=0)) # axis=0,计算每一列的均值
print(np.mean(a, axis=1)) # 计算每一行的均值
2.5
[2. 3.]
[1.5 3.5]
  • np.shape():
    通常有三种使用方法:shape[0],shape[1],shape
    shape[0] :读取行数
    shape[1]:读取列数
    shape:行列数组成元组直接输出

个别举例(二维):

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(a.shape)
(4, 3)
  • np.argmax()函数:

一维:
numpy.argmax(array, axis) 用于返回一个numpy数组中最大值的索引值。

list = [1,3,4,7,324,423,97]
print(np.argmax(list))
5

二维:
遵循运算之后降一维的原则,因此返回的会是一个一维的array。

list= np.array([[1, 3, 5], [0, 4, 3]])
list0 = np.argmax(list, axis = 0)
list01= np.argmax(list, axis = 1)
print(list0)
print(list1)
[0 1 0] 
[2 1]
  • np.exp():

np. exp(x) e的x幂次方

print(np.exp(0))
print(np.exp(1))
 print(np.exp(2))
1.0
2.718281828459045
7.38905609893065
  • np.unique( ):

该函数是去除数组中的重复数字,并进行排序之后输出。

在这里插入图片描述

  • python np.mean和np.average的区别:

np.mean()和np.average()都是计算均值。np.average()可以计算加权平均。

a = np.array([1, 2, 3, 4, 5])
aw = np.array([0.1, 0.2, 0.3, 0.4, 0.5])

print('平均:', np.mean(a))
print('平均:', np.average(a))
print('加权平均:', np.average(a,weights = aw))
平均: 3.0
平均: 3.0
加权平均: 3.6666666666666665
  • np.multiply()、np.dot()和星号(*)三种乘法运算的区别:

    np.multiply():数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致
    np.dot(),matmul():对于秩为1的数组,执行对应位置相乘,然后再相加,输出为一个数值;对于秩不为1的二维数组,执行矩阵乘法运算;超过二维的可以参考numpy库介绍。

元素乘法:np.multiply(a,b)
矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b),
唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值