Numpy(基于jupyter)

NumPy 是一个 Python 包,代表 “Numeric Python” 是一个由多维数组对象和用于处理数组的例程集合组成的库
本文内容包括: 一、创建Ndarray数组 二、Numpy的数据类型 三、数组的切片和索引 四、Numpy广播与数组操作 五、数组合并与通用函数

一、创建Ndarray数组

1、创建Ndarray数组

#引入numpy包,以后np就代表numpy
import numpy as np

array方法,可以传入序列类型的对象

a=np.arange(10,30,2)#10为起点,30为终点,2为步长 array数据类型:数组
a

在这里插入图片描述
(选中这一句话点击运行可以单行运行)
Numpy(基于jupyter)_第1张图片

a3=[1,2,3] #数据类型:列表
a3

在这里插入图片描述

type(a3)#type()判断数据类型

在这里插入图片描述

方法1:(推荐)

#方法1:
a = np.array([1,2,3]) #推荐
a

在这里插入图片描述

#建立多维数组
a1 = np.array([[1,2,3],[7,8,9]])  
a1

在这里插入图片描述

方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明

#方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明
a=np.zeros(10)#生成10个元素,元素全为0   ones()生成的元素全为1
a

在这里插入图片描述
数组:

a=np.zeros([2,3])
a

在这里插入图片描述

a=np.empty(10)#有可能是全0,也可能是随机数
a

在这里插入图片描述

#方法2:arange函数,重要
a=np.arange(10)#产生10个从0开始的自然数,arange()自然数组
a

在这里插入图片描述

a=np.linspace(10,30,12)#10为起始点,30为终止点,生成12个数,默认个数为50,随机产生
a

在这里插入图片描述判断维数 ndim
简便方法,看最开始【的个数

a.ndim #判断a的维数

在这里插入图片描述

a.shape #判断a的形状,为12行(12个数)

在这里插入图片描述

#改变形状reshape
#一般先生成一个一维的,然后reshape为二维的,需要注意的是数据的一致性,10=2*5
a=np.arange(10).reshape(2,5)
a

在这里插入图片描述
形状 shape 2*5 即2行5列

a.shape

在这里插入图片描述

二、Numpy的数据类型

包括:bool、intN、uintN、floatN、complexN 不同的数据类型,会影响运算速度 利用dtype可以查看默认数据类型

a.dtype #判断a中元素类型,区别于type

在这里插入图片描述

a1=np.array([True,False,False,True])#bool型数据:元素只有True或者False
a1.dtype

在这里插入图片描述
数据类型及描述
bool: 存储为一个字节的布尔值(真或假)
int: 默认整数,相当于 C 的long,通常为int32或int64
intc:相当于 C 的int,通常为int32或int64
intp:用于索引的整数,相当于 C 的size_t,通常为int32或int64
int8字节(-128 ~ 127)
int16 :16 位整数(-32768 ~ 32767)
int32: 32 位整数(-2147483648 ~ 2147483647)
int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)
uint8: 8 位无符号整数(0 ~ 255)
uint16: 16 位无符号整数(0 ~ 65535)
uint32: 32 位无符号整数(0 ~ 4294967295)
uint64: 64 位无符号整数(0 ~ 18446744073709551615)
float_:float64的简写
float16半精度浮点:符号位,5 位指数,10 位尾数
float32单精度浮点:符号位,8 位指数,23 位尾数
float64双精度浮点:符号位,11 位指数,52 位尾数
complex_:complex128的简写
complex64:复数,由两个 32 位浮点表示(实部和虚部)
complex128:复数,由两个 64 位浮点表示(实部和虚部)
NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征。 这些类型可以是np.bool_,np.float32等。

a3 = np.array([1.2, 3.23, 7.88])
a3.dtype

在这里插入图片描述

a3.round(1) #a3元素保留位小数,四舍五入

在这里插入图片描述

a4 = a3.astype(np.int32)#a3取整(int32)(去掉小数)
a4

在这里插入图片描述

a = np.array([True,True,False,True,False])
a

在这里插入图片描述

a5 = a.astype(np.float32) #a取单精度浮点数
a5

在这里插入图片描述

三、数组的切片和索引

a =np.arange(10)
#前包括后不包括(从第0位开始),观察运行结果,注意切出来的仅仅是原来的一个视图,并没有改变原数据
#思考一下为啥这样,有什么益处:取出部分数据进行分析,并不改表原来的总数据
a[5:]

在这里插入图片描述

a[5:8]#第五个元素

在这里插入图片描述

#从0开始
a[:5]#从0开始的前5个元素,默认步长为1 

在这里插入图片描述

#从0开始,到5,步长为2
a[:5:2]

在这里插入图片描述

a[::2]#对所有元素,从0开始,步长为2

在这里插入图片描述

四、Numpy的广播与数组操作

a=np.arange(10).reshape(2,5)
a

在这里插入图片描述

#当array与标量运算时,所有的元素都与该标量进行运算
a+10

在这里插入图片描述

#相同形状的数组进行运算,则对应元素之间进行运算
a+a

在这里插入图片描述

a1=np.arange(10,15)
a1

在这里插入图片描述

a+a1

在这里插入图片描述

五、数组合并与通用函数

#合并 np.concatenate,注意多维数组的输入方式
a = np.array([[1,2],[3,4]])
a

在这里插入图片描述

b = np.array([[5,6],[7,8]])
b

在这里插入图片描述

np.concatenate([a,b])#默认是行叠加,沿行合并,或者说沿0轴合并

Numpy(基于jupyter)_第2张图片

np.concatenate([a,b],axis = 1)#对比 axis=1横轴(x轴),axis=0纵轴(y轴)默认axis=0

在这里插入图片描述
数组堆叠——增加数组的维度 stack

a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
np.stack([a,b])

在这里插入图片描述

np.stack([a,b], axis = 1)

Numpy(基于jupyter)_第3张图片
去重 去除重复元素:unique

a = np.array([1,2,1,1,3,4,3,5,6,1])
np.unique(a)

在这里插入图片描述

通用函数

np.sqrt(a)
np.sin(a)
np.cos(a)
np.add(a,b)
np.sub(a,b)
np.mod(a,b)#等价于 a%b 求模
a//b #求余
a == b #比较运算
a>b
~(a>b)

还有部分内容
六、Numpy的统计函数 七、Numpy随机数、逻辑运算与数据存取
#均值
a.mean()
#等价于
np.mean(a)
#求和
a.sum()

#正态分布
np.random.normal( size =(3,5))#normal正态分布
等等内容可以直接下载jupyter文件查看学习:
https://download.csdn.net/download/weixin_43808138/81761570

你可能感兴趣的:(jupyter,jupyter,python,ide)