一、简介:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。其实主要用于数组或矩阵计算
二、 NumPy Ndarray 对象
ndarray里可以存储同类型的多维数组;
创建一个ndarray ,只需要调用numpy库中的array函数即可;
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) object表示数组或者数列,dtype表示数组元素类型,copy表示对象是否需要复制,order表示数组样式,C表示行,F表示列,A表示任意。ndmin表示最小维度
代码:
import numpyas np
#一维数组
a=np.array([1,2,3])
#二维数组
b=np.array([[1,2],[3,4]])
#最小维度
c=np.array([[1,2,3],[1,2,4]],ndmin=0)
#dtype类型为复数的
d=np.array([1,2,3],dtype=complex)
print(a,b,c,d)
三、数组类型的函数为dtype() 即numpy.dtype(object, align, copy),其中 numpy.dtype(object, align, copy), align - 如果为 true,填充字段使其类似 C 的结构体, copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用
代码
import numpy as np
e= np.dtype(np.int32)
f=np.dtype('i4')
g=np.dtype([('age',np.int8)])
print(e,f,g)
四、NumPy 数组属性:
数组中比较重要 ndarray 对象属性有: .ndim表示维度数量; .shape表示数组维度; 对于矩阵,n 行 m 列; .size 表示数组元素的总个数,相当于 .shape 中 n*m 的值; .dtype表示数组类型, 注意这些都是属性,不是函数,不需要加()
代码
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print (a.shape)
输出:(2, 3)
import numpyas np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape(3, 2)
print(b)
输出:
[[1, 2]
[3, 4]
[5, 6]]
五、NumPy 创建数组
.empty() 空数组 numpy.empty(shape, dtype = float, order = 'C')
.zeros() 0矩阵
.ones() 1矩阵
代码
import numpy as np
x = np.empty([3,2], dtype = int)
print (x)
输出[[ 6917529027641081856 5764616291768666155]
[ 6917529027641081859 -5764598754299804209]
[ 4497473538 844429428932120]] 随机生成,没有初始化
import numpy as np
# 自定义类型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print(z)
输出:
[[(0, 0) (0, 0)]
[(0, 0) (0, 0)]]
x = np.ones([2,2], dtype = int)
print(x)
输出:
[[1 1]
[1 1]]
六、NumPy 从数值范围创建数组
arange 函数创建数值范围 numpy.arange(start, stop, step, dtype)
linspace函数用于创建一个一维数组,数组是一个等差数列构成的
numpy.logspace 函数用于创建一个于等比数列。 np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) num是步长,base是 对数 log 的底数
import numpyas np
a=np.arange(10,20,3)
print(a)
输出:[10 13 16 19]
a = np.linspace(1,10,10)
print(a)
输出:[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] #等差数列
a = np.logspace(1.0, 2.0, num = 10) #num底数是10
print(a)
输出:[ 10. 12.91549665 16.68100537 21.5443469 27.82559402
35.93813664 46.41588834 59.94842503 77.42636827 100. ]
总结:
函数:array() 数组;dtype()类型;empty()空数组;zeros();ones();arange()表示范围;
linspace()表示函数用于创建一个一维数组,数组是一个等差数列构成的
logspace()函数用于创建一个于等比数列
transpose()函数用于对换数组的维度
属性:.ndim表示维度数量; .shape表示数组维度; 对于矩阵,n 行 m 列; .size 表示数组元素的总个数,相当于 .shape 中 n*m 的值; .dtype表示数组类型 ; .flat 数组元素迭代器