赞
踩
numpy就是一个便于科学计算的第三方库,常运用于数据分析和大量运算。比如矩阵等…
用处与特点:
- 提供了n维数组(ndarray)
- 数组由同质元素(相同的元素类型)构成,且元素数量(几行几列)是事先定好的。
构成:
- 轴(axes):类似于x轴、y轴。如图就是两个轴,第0轴和第1轴(轴从0开始数)
- 秩(rank,用ndim属性来获取)——:就是数组的维数,也是轴的数量(从1开始数)
- 大小(size):数组中元素的个数
- 形状(shape):就是数组有几行几列
- 类型(dtype):数组中元素的类型
- 元素大小(itemsize):数组中单个元素占用的字节数
对于多维数组的理解:用串糖葫芦来理解,二维数组的一个轴每穿过一个元素都是一维数组。
三维数组的一个轴每穿过一个元素都是二维数组。
那么四维数组的一个轴每闯过一个轴都是三维数组。同理类推...
在python的语法中,方括号中每一个元素是n维数组,它就是n+1维数组
一般都会对numpy库进行更名处理,便于之后使用
import numpy as np
创建数组:
语法:
"""
注意:括号里面还要用中括号,因为至少是一个一维数组。中括号里面每一个元素由n维数组构成,
它就是n+1维数组。别忘了最外层永远有一个中括号
"""
变量名 = np.array([])
演示:
arr = np.array([1,2,3])
arr1 = np.array([[1,2,3],[4,5,6]])#创建二维数组,每一个元素都是一维数组,所以它创建的就是二维数组
常用属性查看:
arr = np.array([[1,2,3],[4,5,6]])
通过数组的ndim属性来获取秩的大小
print(arr.ndim) #2
通过数组的shape属性来获取形状
print(arr.shape) #(2, 3)
通过数组的size属性来获取元素个数
print(arr.size) #6
通过dtype属性来获取元素类型
print(arr.dtype) #int32
通过数组的itemsize属性来获取单个元素的占用字节数
print(arr.itemsize) #4
在括号里面添加dtype属性,注意等于的后面更改属性也要加上np.
arr1 = np.array([[6,7,8],[9,10,11]],dtype=np.int64) #指定类型
创建数组的常用方法:
可以类比于range()函数,不同的是arange()支持浮点数。第一个参数是起始值,第二个参数是终止值(不包括),第三个参数是步长
实例演示:
import numpy as np
arr = np.arange(1,10,2)
arr1 = np.arange(10.0)
arr2 = np.arange(5)
print(arr)
print(arr1)
print(arr2)
可以创建均分的数组,默认包含终止值,第三个参数不是步长而是最终分割成的个数,可以是浮点数
实例演示:
import numpy as np
#把从1到10的数据之间分割成n份
arr = np.linspace(1,10,3)#分成三份
arr2 = np.linspace(1,10,7)#分成七份
arr3 = np.linspace(1,10,20)#分成二十份
print(arr)
print(arr2)
print(arr3)
用来创建全是1的数组,括号里写的是数组的形状,默认支持浮点数
实例演示:
import numpy as np
arr = np.ones(5)
arr1 = np.ones((2,3))#别忘了数组的形状要用小括号包裹
print(arr)
print(arr1)
用来创建全是0的数组,括号里写的是数组的形状,默认支持浮点数
实例演示:
import numpy as np
arr = np.zeros(5)
arr1 = np.zeros((2,3))#别忘了数组的形状要用小括号包裹
print(arr)
print(arr1)
用来创建全是指定参数的数组,第一个参数写的是数组的形状,第二个参数写的是指定数默认支持浮点数
实例演示:
import numpy as np
arr = np.full((2,3),9)
arr1 = np.full((4,7),3.3)
print(arr)
print(arr1)
用来创建N行M列的单位数组,M省略时创建N行N列的单位数组(从第一列开始依次变1,其他都为0)
实例演示:
import numpy as np
arr = np.eye(3,3)
arr1 = np.eye(4,5)
print(arr)
print(arr1)
用来创建n维数组,元素为0-1之间的随机小数。里面的参数写的是数组的形状,有几个参数就是几维数组,不需要写括号
#随机生成0-1之间的小数
arr = np.random.rand()
print(arr)
import numpy as np
arr = np.random.rand(2,3)#第0轴元素数量为2,第1轴的元素数量为3.总共是二维
print(arr)
import numpy as np
arr = np.random.rand(2,3,3)#第0轴元素数量为2,第1轴的元素数量为3.第2轴的元素数量为3总共是三维
print(arr)
至于更多维度就以此类推
import numpy as np
a = 5
b = 10
arr = a + (b-a) * np.random.rand(2,3) #随机数范围为5-10
print(arr)
数据类型(Data Type) | 描述(Description) |
---|---|
int8, uint8 | 符号和无符号的8位(1个字节)整型 |
int16, uint16 | 符号和无符号的16位(2个字节)整型 |
int32, uint32 | 符号和无符号的32位(4个字节)整型 |
int64, uint64 | 符号和无符号的64位(8个字节)整型 |
float16 | 半精度浮点数:符号位,5位指数,10位尾数 |
float32 | 单精度浮点数:符号位,8位指数,23位尾数 |
float64 or float | 双精度浮点数:符号位,11位指数,52位尾数 |
complex64 | 两个32位浮点数(实数和虚数) |
complex128 or complex | 两个64位浮点数(实数和虚数) |
注意: int, float和complex_代表与平台相关的标准整数,浮点数和复数类型,这些类型在32位平台上和int32, float32, complex64一样,64位平台上和int64,float64,complex128一样。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。