1.什么是Numpy

numpy是科学计算基础库,提供大量课学计算相关功能,比如数据统计、生成随机数等。其提供最核心类型多维数组(ndarray),支持大量的维度数组与矩阵计算,numpy支持向量处理ndarray对象,提高程序计算速度。
本章,会精简的总结出numpy的各种功能,方便后续查找。

2.array创建数组

array(object, dtype=None, *, copy=True, order=‘K’, subok=False, ndmin=0,like=None)

在python里面的numpy的array方法的作用 numpy中array函数_数据分析

import numpy as np
# 利用array()创建一维数组 (如何将列表转化为数组)
# 列表是用逗号隔开,数组用空格隔开
b = np.array([1,2,3,4])
print(b)
print("b数组的维度",b.shape)

在python里面的numpy的array方法的作用 numpy中array函数_python_02

c = np.array(
    [[1,2,3],
    [4,5,6],]
)
print(c)
print("c数组的维度",c.shape) # (2,3)含义大列表中包含2个小列表,小列表中包含3个元素

在python里面的numpy的array方法的作用 numpy中array函数_python_03

# ndmin参数的使用:生成数组的维度,如果没有指定的话,默认是按照传递进来的列表维度
# 指定了ndmin,如果ndmin小于列表维度,就按照列表维度来计算。如果大于等于就按照ndmin增加维度。
d = np.array([1,2,3,4,5],ndmin=3)
print(d)
print('d数组的维度',d.shape)

e = np.array([[1,2,3,4,5],[1,2,3,4,5]],ndmin=4)
print(e)
print('e数组的维度',d.shape)

在python里面的numpy的array方法的作用 numpy中array函数_等差数列_04

# dtype参数的使用:指定数组元素的数据类型
e = np.array([1,2,3,4],dtype=np.float)
print(e)

在python里面的numpy的array方法的作用 numpy中array函数_数组_05

3.arange创建函数

在python里面的numpy的array方法的作用 numpy中array函数_数据分析_06

# arange([start,] stop[, step,], dtype=None, *, like=None)
# arange的使用更方便的生成有规律性的数组(类似range函数)

# 1.生成0到5的数组
# 方法1:
x1 = np.arange(0,6,dtype=int)
print(x1)
# 方法2:
x2 = np.arange(6)#stop不包括6 起点默认为0
print(x2)
print('------------------------------')

# 2.arange创建二维数组
# 通过array函数和arange函数配合使用创建二维数组
y = np.array(
    [np.arange(1,4),
    np.arange(4,7),
    np.arange(7,10)]
)
print(y)
print(y.shape)

在python里面的numpy的array方法的作用 numpy中array函数_数组_07

4.随机数的创建

在python里面的numpy的array方法的作用 numpy中array函数_数组_08

import numpy as np
# 1. random(size=None) 生成随机数
m = np.random.random(size=4) # size是维度,返回size个[0,1)的一维数组
print('m=',m)

n = np.random.random(size=(3,4)) # 返回3行4列的二维数组
print('n=',n)


# randint(low, high=None, size=None, dtype=int) 生成随机整数
x = np.random.randint(5,size=10) # low默认是0,high=5,生成10个[0,5)的随机整数
print('x=',x)

y = np.random.randint(5,10,size=10) # low=5,high=10,生成10个[0,5)的随机整数
print('y=',y)

w = np.random.randint(5,10,size=(2,3)) # 指定size的维度
print('w=',w)


# 2.randn(d0, d1, ..., dn) 从标准正态分布中随机抽取数据,返回一个或一组样本
a = np.random.randn(2,3) # 生成一个2行3列的数组,数据中标准正态分布抽取
print('a=',a)

a1 = np.random.randn(2,3,4) # 生成一个三围的数组,数据中标准正态分布抽取
print('a1=',a1)

# 指定均值和标准差的正态分布中获取随机数
# normal(loc=0.0, scale=1.0, size=None) loc均值,scale标准差 size维度
z = np.random.normal(loc=5, scale=2, size=(2,3,3))
print('z=',z)

在python里面的numpy的array方法的作用 numpy中array函数_numpy_09

5.ndarray 对象

在python里面的numpy的array方法的作用 numpy中array函数_数据分析_10

import numpy as np
# 先创建三个数组
x1 = np.random.randint(10,size=6)
x2 = np.random.randint(10,size=(3,4))
x3 = np.random.randn(3,4,5)
# 1.数组的维度数量 ndim
print('ndim:',x1.ndim,x2.ndim,x3.ndim)
# 2.数组的形状(维度)
print('shape:',x1.shape,x2.shape,x3.shape)
# 3.数组的数据类型
print('dtype:',x1.dtype, x2.dtype, x3.dtype)
# 4.数组中包含元素的个数
print('size:',x1.size, x2.size, x3.size)
# 数组中每个元素的大小,以字节为单位
print('itemsize:',x1.itemsize, x2.itemsize, x3.itemsize)

在python里面的numpy的array方法的作用 numpy中array函数_数组_11

6.zeros函数创建数组

import numpy as np
# zeros(shape, dtype=float, order='C', *, like=None)
# 1. 创建全0数组方式1
x = np.zeros(5)
print('x=',x)
# 2. 创建全0数组方式2
x = np.zeros((5,),dtype=int)
print('x=',x)
# 3.创建一个形状为2x2的数组
x = np.zeros((2,2))
print('x=',x)

# np.zeros_like(a, dtype=None, order='K', subok=True, shape=None)
# 根据传入数组的形状创建全为0的数组
y = np.zeros_like(x)
print('y=',y)

在python里面的numpy的array方法的作用 numpy中array函数_数据分析_12

7.ones函数创建数组

import numpy as np
# 用法与zeros相同,创建一个全1数组

x = np.ones(5)
print('x=',x)

y = np.ones((3,4),dtype=int)
print("y=",y)

# 根据传入数组的形状\数据类型创建全为1的数组
z = np.ones_like(y)
print('z=',z)

在python里面的numpy的array方法的作用 numpy中array函数_python_13

8.empty函数创建数组

# empty(shape, dtype=float, order='C', *, like=None)
# 创建一个指定形状,数据类型,并且未初始化(随机生成)的数据
x = np.empty((2,2), dtype=np.float32)
print("x=",x)
# empty_like(prototype, dtype=None, order='K', subok=True, shape=None)
y = np.empty_like(x) # 创建一个与指定数组完全相同的数组
print('y=',y)

在python里面的numpy的array方法的作用 numpy中array函数_数组_14

9.full函数创建数组

# np.full(shape, fill_value, dtype=None, order='C', *, like=None)
# 创建一个指定形状,指定填充数据的数组
x = np.full((2,4),6)
print("x=",x)

# np.full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None)
# 创建一个形状与指定数组形状相同,指定填充数据的数组
x = np.full_like(x,9)
print("x=",x)

在python里面的numpy的array方法的作用 numpy中array函数_数组_15

10.创建单位矩阵数组

import numpy as np
# np.eye(N, M=None, k=0, dtype=<class 'float'>, order='C', *, like=None)
a = np.eye(3) # 创建一个3阶单位矩阵数组
print('a=',a)

# 创建一个3行2列的单位矩阵  从左上角开始往右下方都是1。其余为0
print('b=', np.eye(3,2))

# 创建一个5行4列的数组,第一行第三列的位置开始往右下角是1.其余是0
print('c=', np.eye(5,4,k=2))

在python里面的numpy的array方法的作用 numpy中array函数_numpy_16

11.linspace创建数组

在python里面的numpy的array方法的作用 numpy中array函数_numpy_17

# np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0,) 
# 与arange很类似,都是创建等差数列

# 创建一个起始值为1,结束值为10,包含10个数据的等差数列数组
x = np.linspace(1,10,10) 
print('x=',x)

# 创建一个起始值为10,结束值为20,包含5个数据的等差数列数组
x = np.linspace(10,20,5,endpoint=True)
print('x=',x)

# 创建一个起始值为1,结束值为5(不包括),包含5个数据的等差数列数组
x = np.linspace(1,5,5,endpoint=False)
print('x=',x)

# 创建一个起始值为10,结束值为20,包含5个数据的等差数列数组,返回结果也显示了等差数列的公差(步幅)
x = np.linspace(10,20,5,endpoint=True, retstep=True)
print('x=',x)

在python里面的numpy的array方法的作用 numpy中array函数_python_18

12.logspace创建数组

在python里面的numpy的array方法的作用 numpy中array函数_数组_19

# 生成一个等比数列,起始值为0^2,终止值为2^9,一共有10个数字
x = np.logspace(0,9,10,base=2)
print("x=",x)

# 生成一个等比数列,起始值为10^0,终止值为10^3,一共有4个数字
x = np.logspace(0,3,4,base=10)
print("x=",x)

在python里面的numpy的array方法的作用 numpy中array函数_numpy_20