1. Numpy重要功能如下:
NumPy(Numerical Python)是Python 语言的一个扩展程序库。是一个运行速度非常快的数学库,高性能科学计算和数据分析的基础包,主要用于数组计算。
包含:
1.一个强大的N维数组对象ndarray,多维数组,具有矢量运算能力,快速、节省空间;
2.矩阵运算,无需循环,可完成类似Matlab中的矢量运算;
3.线性代数、傅里叶变换、随机数生成等功能;
4.广播功能函数;
5.整合C/C++/Fortran代码的工具
6.用于读写磁盘数据的工具以及用于操作内存映射文件的工具;
2. Numpy属性
NumPy的数组类被称作ndarray,通常被称作数组;
numpy和数学操作相关的库,numpy的数组是多维的,并且是固定类型的,numpy的数组是ndarray,主要用于:矩阵运算。
ndarray对象属性有:
| 属性 | 说明 |
|---|---|
ndarray.ndim |
维度,是几层嵌套 |
ndarray. shape |
形状,是几行几列 |
ndarray.size |
大小,有几个元素 |
ndarray. dtype |
元素的类型 |
ndarray.itemsize |
元素的大小 |
数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性。
python
#1.创建numpy的 ndarray对象.
arr1 = np.arange(15).reshape(3,5)
print(arr1)
print(f'numpy的轴:{arr1.ndim}') #2
print(f'numpy的维度:{arr1.shape}') #(3,5) 3行5列
print(f'numpy的元素类型:{arr1.dtype}') #int32
print(f'numpy的元素个数:{arr1.size}') #15
print(f'numpy的元素占用字节数:{arr1.itemsize}') #4
print(f'numpy的元素类型:{type(arr1)}') # <class 'numpy.ndarray'>
3. 创建ndarray:
NumPy数组是一个多维的数组对象(矩阵),称为ndarray;ndarray的下标从0开始 ,且数组里的所有元素必须是相同类型。
3.1 方式一:array() 创建 ndarray对象:(把python列表转成 ndarray对象)
python
import numpy as ap
#1.创建python列表对象.
my_list=[11,22,33,44, 55]
print(type(my_list)) # <class 'list'>
#2.把python列表 ------> ndarray对象
arr2 = np.array(my_list)
print(arr2) # [11,22,33,44, 55]
print(type(arr2)) # <class 'numpy.ndarray'>
3.2 方式二:arange() 创建 ndarray对象:
arange(起始, 结束, 步长, dtype=类型),类似于 Pythong中的range()函数, 创建一个一维ndarray数组。
python
import numpy as ap
#1.创建ndarray对象.
arr3 = np.arange(0,10,2, dtype=np.float32l
#2.打印ndarray对象.
print(arr3) # [0.2.4.6.8.]<
print(type(arr3)) # <class 'numpy.ndarray'>
print(f'元素的类型:{arr3.dtype}') # 元素的类型:fLoat32
3.3 方式三:随机数生成ndarray(随机矩阵):
1.random.rand()生成0.0~1.0之间,包左不包右的随机小数矩阵;
2.random.randint(起始值,结束值,size=(行,列))生成指定范围,包左不包右的随机整数矩阵 ;
3, random.uniform(起始值,结束值,size=(行,列))生成指定范围,包左不包右的随机小数矩阵.
python
import numpy as np
#1.random.rand()生成0.0~1.0之间,包左不包右的随机小数矩阵.
arr4 = np.random.rand(3,5) #3行5列
print(arr4)
print(type(arr4)) # <class 'numpy.ndarray'>
#2.random.randint(起始值,结束值,size=(行,列))生成指定范围,包左不包右的随机整数矩阵.
arr5 = np.random.randint(3, 5, size=(2, 6)) #2行6列
print(arr5)
print(type(arr5)) # <class 'numpy.ndarray'>
#3.random.uniform(起始值, 结束值, size=(行 列)) 生成指定范围 包左不包右的 随机小数钜阵;
arr6 = np.random.uniform(3,9,size=(2, 6))
print(arr6)
printtype(arr6)) # <class 'numpy.ndarray'>
5. ndarray 的数据类型astype():
1.dtype参数,指定数组的数据类型,类型名+位数,如float64,int32
2.astype(),转换数组的数据类型;
python
#初始化3行4列数组,数据类型为f1oat64
zeros_float_arr = np.zeros((3, 4), dtype=np.float64)
print(zeros_float_arr)
print(zeros_float_arr.dtype) #float64
#astype转换数据类型,将已有的数组的数据类型转换为int32
zeros_int_arr = zeros_float_arr.astype(np.int32)
print(zeros_int_arr)
print(zeros_int_arr.dtype) #int32