Numpy库介绍
- numpy内置并行运输功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算。
- numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受python解释器的限制,效率远高于纯Python代码
numpy数组和python列表性能对比
import numpy as np
import time
t1 = time.time()
a = []
for x in range(100000):
a.append(x**2)
t2 = time.time()
print(t2-t1)
t3 = time.time()
b = np.arange(100000)**2
t4 = time.time()
print(t4-t3)
numpy数组介绍
- 数组中的数据类型都是一致的,要么都是整形,要么都是浮点型,要么都是字符串类型 不能同时出现多种数据类型
- help(np.array)查看使用方法
创建数组的四种方式
1.根据python中的列表生成:
import numpy as np
a1 = np.array([1,2,3,4])
print(a1)
2.使用np.arange生成,np.arange的用法类似于python中的range:
a2 = np.arange(10)
a2
3.使用np.random 生成随机数的数组:
a1 = np.random.random(2,2) #生成2行2列的随机数的数组
a2 = np.random.randint(0,10,size=(3,3))#元素是从0-10之间随机的3行3列的数组
4.使用函数生成特殊的数组:
a1 = np.zeros((2,2)) #生成一个所有元素都是0的2行2列的数组
a2 = np.ones((3,2)) #生成一个所有元素都是1的3行2列的数组
a3 = np.full((2,2),8)#s生成一个所有元素都是8(8是可以随意指定的数)的2行2列的数组
a4 = np.eye(3) #生成一个斜方形上元素为1 其他元素都为0的3x3的矩阵
Numpy数组类型dtype
- 为什么Numpy的数组中有那么多的数据类型呢?
Numpy本身是基于c语言编写,C语言中本身就是有很多数据类型,所以直接引用过俩了
Numpy为了考虑到处理海量数据的性能,针对不同的数据给不同的数据类型,来节省内存空间,所以有不同的数据类型。
2.Numpy的数组的元素有哪些数据类型?
| 数据类型 |描述|唯一标识符|
| bool | 用一个字节存储的布尔类型(True或False) | ‘b’
| int8 | 一个字节大小,-128-127 |‘i’
| int16 | 整数(-32768 to 32767) | ‘i2’
|int32 | 整数,32位整数(-2147483648 to 2147483647) | ‘i4’
|int64 |整数,64位整数(-9223372036854775808 to 9223372036854775807) |’i8‘