python-numpy

一、 使用numpy生成数组,得到ndarray的类型

ndarry指Numpy最重要的一个特点:N维数组对象,该对象是一个快速而灵活的大数据集容器。

import numpy as np

#使用numpy生成数组,得到ndarray的类型
t1=np.array([1,2,3])
print(t1)
print(type(t1))

t2=np.arange(4,10,2)
print(t2)
print(type(t2))

print(t2.dtype)

在这里插入图片描述
还可以使用zeros和ones分别可以创建指定长度或形状的全0或者全1的数组,empty可以创建一个没有任何具体值的数组。

print(np.zeros(10))
print(np.zeros((3,6)))

在这里插入图片描述

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

二、NumPy - 数据类型

NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同标量数据类型。

序号数据类型及描述
1.bool_ 存储为一个字节的布尔值(真或假)
2.int_ 默认整数,相当于 C 的long,通常为int32或int64
3.intc 相当于 C 的int,通常为int32或int64
4.intp 用于索引的整数,相当于 C 的size_t,通常为int32或int64
5.int8 字节(-128 ~ 127)
6.int16 16 位整数(-32768 ~ 32767)
7.int32 32 位整数(-2147483648 ~ 2147483647)
8.int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)
9.uint8 8 位无符号整数(0 ~ 255)
10.uint16 16 位无符号整数(0 ~ 65535)
11.uint32 32 位无符号整数(0 ~ 4294967295)
12.uint64 64 位无符号整数(0 ~ 18446744073709551615)
13.float_ float64的简写
14.float16 半精度浮点:符号位,5 位指数,10 位尾数
15.float32 单精度浮点:符号位,8 位指数,23 位尾数
16.float64 双精度浮点:符号位,11 位指数,52 位尾数
17.complex_ complex128的简写
18.complex64 复数,由两个 32 位浮点表示(实部和虚部)
19.complex128 复数,由两个 64 位浮点表示(实部和虚部)

NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征。 这些类型可以是np.bool_,np.float32等。

三、数据类型的操作

  1. 求数据类型
    print(t1.dtype)
  2. 指定数据类型:
    t1=np.array([1,2,3,4,5],dtype=bool/float/int/unit)
  3. 修改数据类型:
    t1.astype(“i1”)或者使用t1.astype(np.int8)
  4. 随机数:
    random.random()
  5. 生成十个小数:
    t6=np.array([random.random() for i in range(10)])
    修改小数位数:
  6. t7=np.round(t6,2) #t6取两位小数
    举例:
#numpy中的数据类型
t3=np.array((range(1,4)),dtype="i1")
print(t3)
print(type(t3))
print(t3.dtype)

t5=np.array([1,1,0,1,0,0],dtype=bool)
print(t5)
print(t5.dtype)

#numpy中的小数
t6=np.array([random.random() for i in range(10)]) #生成十个小数
print(t6)
print(t6.dtype)

#取几位小数
t7=np.round(t6,2) #t6取两位小数
print(t7)
print(t7.dtype)

结果:
在这里插入图片描述

四、数组的运算

数组很重要,因为它使你不用编写循环即可对数据执行批量运算。

  1. t1.shape()结果有几个数字就是几维 :
    一个数字就是一维数组,两个就是二维数组…
  2. t1.reshape()重组:
    一维:((24,))二十四个元素 元素个数的计算方法:(t1.shape(0)*t1.shape(1)
    二维:((2,3))二行三列
    三维:((2,3,4))两组三行四列
  3. 将未知数量的数组变为一维:
    t1.flatten()

大小相等的数组之间的任何算术运算都会将运算应用到元素级:

arr=np.array([[1.,2.,3.],[4.,5.,6.]])
print(arr)
print(arr*arr)
print(arr-arr)

在这里插入图片描述
数组与标量的算术运算会将标量值传播到各个元素:

print(1/arr)
print(arr**0.5)

在这里插入图片描述
大小相同的数组之间的比较会生成布尔值数组:

arr2=np.array([[0.,4.,1.],[7.,2.,12.]])
print(arr2)
print(arr2>arr)

在这里插入图片描述
加减乘除
当维度相同并且行列相同可以加减乘除
but当维度不同时,行列数相同可以加减乘除
当行列数不同时,当其中一个行数为一,两个地列数相同可以加减乘除

五、轴

轴0作为行,轴1作为列
在这里插入图片描述
在多维数组中,如果省略了后面的索引,则返回对象会是一个维度低一点的ndarray(它含有高一级维度上的所有数据)。

六、通用函数(ufunc)

一些一元和二元ufunc

1.一元ufunc:

在这里插入图片描述
在这里插入图片描述

2.二元ufunc:

在这里插入图片描述

七、统计方法、排序及唯一化和它的集合逻辑

1.统计方法:

在这里插入图片描述

在这里插入图片描述
在上面这些方法中,布尔值会被强制转换为1(True)和0(False)。因此,sum经常被用来对布尔型数组中的True值计数:

arr = np.random.randn(100)
print((arr>0).sum())

另外还有两个方法any和all,它们对布尔型数组非常有用。any用于测试数组中是否存在一个或多个True,而all则检查数组中所有值是否都是True:

bools=np.array([False,False,True,True])
print(bools.any())
print(bools.all())

在这里插入图片描述

2.排序:

排序:t1.sort()

3.唯一化及它的集合逻辑:

唯一化:t1.unique()
数组的集合运算:
在这里插入图片描述

八、数组的文件输入输出

代码作用
np.save()读写磁盘数组数据
np.load读写磁盘数组数据
np.savez将多个数组保存到一个未压缩文件中
numpy.savez_compressed将数据压缩

如果文件路径末尾没有扩展名.npy,则该扩展名会被自动加上。然后就可以通过np.load读取磁盘上的数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值