报错:ModuleNotFoundError: No module named 'numpy',集成环境下,没有numpy这个模块
解决:安装 pip install numpy
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10])
print(a)
多维数组的切片以逗号为分隔对各维度切片,在二维数组中就只有一个逗号,逗号前为行切片逗号后为列切片
a[:, 1] #所有行第一列;
a[0, 1:4] #第0行所有列
a[1:4, 0] #第0列1到4行
a[::2,::2] #索引值能被2整除的所有行能被2整除的所有列
np[0:2] 左闭右开
#数组的转置
a = np.arange(8).reshape(2,4)
a.T
#数组去重
numpy.unique(arr, return_index, return_inverse, return_counts)
a = np.array([5,2,6,2,7,5,6,8,2,9])
u = np.unique(a)
u,indices = np.unique(a, return_index = True)
numpy.stack(arrays, axis) #沿新轴连接数组
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
np.stack((a,b),0)
np.stack((a,b),1)
c = np.hstack((a,b)) #通过堆叠生成水平的单个数组
c = np.vstack((a,b)) #竖直堆叠
numpy.insert() #数组插入
numpy.delete() #元素删除
numpy.resize(arr, shape)
numpy.append(arr, values, axis) #数组拼接
a = np.array([[1,2,3],[4,5,6]])
np.append(a, [7,8,9])
np.append(a, [[7,8,9]],axis = 0)
np.append(a, [[5,5,5],[7,8,9]],axis = 1
#三角函数
a = np.array([0, 30, 45, 60, 90])
np.sin(a*np.pi/180)
np.cos(a*np.pi/180)
np.tan(a*np.pi/180)
arcsin、arccos、arctan、numpy.degrees()
#decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
numpy.around(a, decimals)
numpy.floor() #向下取整
numpy.ceil() #向上取整
#add()、 subtract()、 multiply()、 divide() #ndarray数据之间加减乘除运算
#numpy.power()
a = np.array([10,100,1000])
np.power(a,2)
b = np.array([1,2,3])
np.power(a,b)
#numpy.mod() 除法余数
a = np.array([10,20,30])
b = np.array([3,5,7])
np.mod(a,b)
np.remainder(a,b) #和mod函数功能相同
#统计函数
numpy.amin()
numpy.amax()
#numpy.dot() 函数返回两个数组的点积,对于二维数组其等效于矩阵乘法
#numpy.vdot() 函数返回两个向量的点积
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print np.vdot(a,b) #1*11 + 2*12 + 3*13 + 4*14 = 130
#numpy.inner() 函数返回一维数组的向量内积
#numpy.matmul() 函数返回两个数组的矩阵乘积
#numpy.linalg.det() #计算矩阵的行列式
#numpy.linalg.solve() #给出了矩阵形式的线性方程的解
#numpy.linalg.inv() #计算矩阵的逆矩阵
#numpy.dot() 函数返回两个数组的点积,对于二维数组其等效于矩阵乘法
#numpy.vdot() 函数返回两个向量的点积
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print np.vdot(a,b) #1*11 + 2*12 + 3*13 + 4*14 = 130
#numpy.inner() 函数返回一维数组的向量内积
#numpy.matmul() 函数返回两个数组的矩阵乘积
#numpy.linalg.det() #计算矩阵的行列式
#numpy.linalg.solve() #给出了矩阵形式的线性方程的解
#numpy.linalg.inv() #计算矩阵的逆矩阵
#ndarray对象可以保存到磁盘文件并从磁盘文件中加载
#load() 和 save() 函数处理numpy二进制文件
#loadtxt() 和 savetxt() 函数处理正常的文本文件
a = np.array([1,2,3,4,5])
np.save('outfile',a)
b = np.load('outfile.npy')
a = np.array([1,2,3,4,5])
np.savetxt('out.txt',a)
b = np.loadtxt('out.txt')
a = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28 ,29, 30],
[31, 32, 33, 34, 35]])
print(type(a)) # <class 'numpy.ndarray'>NumPy数组实际上被称为ndarray
print(a.dtype) # int32
print(a.size) # 25
print(a.shape) # (5, 5) 数组的形状是它有多少行和列
print(a.itemsize) # 4
print(a.ndim) # 2
print(a.nbytes) # 100
itemsize属性是每个元素占用的字节数。这个数组的数据类型是int32,一个int32中有32位,一个字节中有8位,除以32除以8,你就可以得到它占用了多少字节,在本例中是4(因电脑而异)。ndim 属性是数组的维数,这里是二维数组。nbytes 属性是数组中的所有数据消耗掉的字节数,一共25个元素,每个元素占4个字节,一共占4*25=100个字节。
可以指定数组的行列元素个数,具体程序如下:
import numpy as np
a = np.zeros((5,5)) # 创建全0数组
print(a)
得到了一个5×5的全零数组,输出结果如下:
有时候,我们需要一个全一数组,具体程序如下:
b = np.ones((5,2)) # 创建全1数组
print(b)
得到了一个5×2的全一数组,输出结果如下:
更一般的,我们也可以得到全部都是指定数字的数组,例如全部是数字7,具体命令如下:
c = np.full((2,2), 7) # 创建全7数组
print(c)
得到了一个2×2的全部是数字7数组,输出结果如下:
如果想得到单位矩阵,可用如下程序:
d = np.eye(3) # 创建单位矩阵,3行3列
print(d)
得到单位矩阵如下:
类似于stata中的随机数函数,NumPy也有创建随机数的函数,程序如下:
e = np.random.random((2,2)) # 创建随机数数组
print(e)
得到2×2的随机得到单位矩阵如下: