python 库之numpy使用(学习笔记)
概述
import numpy as np
array1 = np.array([1,2,3,4,5])
array2 = array +1
array2
array1 + array2
array1 * array2
type(array1)
Array数组
import numpy as np
yu_list = [1,2,3,4,5]
yu_array = np.array(yu_list)
yu_array.dtype
yu_list = [1,2,3,4,5.0]
yu_array.itemsize
yu_array.shape
yu_array.size
yu_array.ndim
yu_array.fill(0)
yu_array[0]
yu_array[1:3]
yu_array[-2:]
数组结构
yu_array = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
yu_array[1,1]
yu_array[1,1] = 10
yu_array
yu_array[1]
yu_array[:,1]
yu_array[1,0:2]
yu_array2 = yu_array.copy()
yu_array = np.arange(0,100,10)
ran_array = np.random.rand(10)
mask = ran_array>0.5
False])
mask = np.array([0,0,0,1,1,1,0,0,1,1],dtype=bool)
yu_array[mask]
--> array([30, 40, 50, 80, 90])
yu_array = np.array([10,20,30,40,50])
np.where(yu_array>30)
--> (array([3, 4]),)
yu_array[np.where(yu_array>30)]
--> array([40, 50])
yu_array = np.array([1,2,3,4,5]
yu_array = np.array([1,2,3,4,5],dtype = np.float32)
yu_array.nbytes
np.asarray(yu_array,dtype = np.float32)
yu_array.astype(np.float32)
数组的数值运算
import numpy as np
yu_array = np.array([[1,2,3],[4,5,6]])
np.sum(yu_array)
yu_array.ndim
np.sum(yu_array,axis = 0)
yu_array.prod()
yu_array.prod(axis = 0)
yu_array.min()
yu_array.min(axis = 0)
yu_array.max()
yu_array.argmin()
yu_array.argmax()
yu_array.argmin(axis = 0)
yu_array.mean()
yu_array.mean(axis=0)
yu_array.std()
yu_array.var()
yu_array.clip(2,4)
yu_array = np.array([[1.7,2.3,3.8],[4.2,5,6.5]])
yu_array.round()
yu_array = np.array([[1.71,2.36,3.89],[4.21,5.68,6.53]])
yu_array.round(decimals=1)
排序操作
import numpy as np
yu_array = np.array([[1.6,1.5,2.5],[3.4,1.8,7.6]])
np.sort(yu_array)
np.sort(yu_array,axis =0)
np.argsort(yu_array)
yu_array = np.linspace(0,10,10)
values = np.array([2.5,3.5,9.5])
np.searchsorted(yu_array,values)
yu_array = np.array([[1,0,6],[2,0,1],[1,7,3],[3,2,1]])
'''
array([[1, 0, 6],
[2, 0, 1],
[1, 7, 3],
[3, 2, 1]])
'''
index = np.lexsort([-1*yu_array[:,0],yu_array[:,2]])
yu_array[index]
'''
array([[3, 2, 1],
[2, 0, 1],
[1, 7, 3],
[1, 0, 6]])
'''
数组形状操作
import numpy as np
yu_array = np.arange(10)
yu_array.shape = 2,5
yu_array = np.arange(10)
yu_array.shape
yu_array = yu_array[np.newaxis,np.newaxis,:]
yu_array.shape
yu_array = yu_array.squeeze()
yu_array.shape
yu_array = np.arange(10)
yu_array = yu_array.reshape(2,5)
yu_array.transpose()
'''
array([[0, 5],
[1, 6],
[2, 7],
[3, 8],
[4, 9]])
'''
a = np.array([[12,34,56],[78,99,90]])
b = np.array([[2,4,6],[8,9,0]])
np.concatenate((a,b))
b = np.array([[2,4,6],[8,9,0]])
np.concatenate((a,b))
'''
array([[12, 34, 56],
[78, 99, 90],
[ 2, 4, 6],
[ 8, 9, 0]])
'''
np.concatenate((a,b),axis=1)
'''
array([[12, 34, 56, 2, 4, 6],
[78, 99, 90, 8, 9, 0]])
'''
a = np.array([[12,34,56],[78,99,90]])
a.flatten()
数组生成函数
import numpy as np
np.arange(2,20,2,dtype = np.float32)
np.linspace(0,50,10)
'''
array([ 0. , 5.55555556, 11.11111111, 16.66666667, 22.22222222,
27.77777778, 33.33333333, 38.88888889, 44.44444444, 50. ])
'''
np.logspace(0,1,5)
x = np.linspace(-10,10,5,dtype=int)
y = np.linspace(-10,10,5,dtype=int)
x,y = np.meshgrid(x,y)
x
'''
array([[-10., -5., 0., 5., 10.],
[-10., -5., 0., 5., 10.],
[-10., -5., 0., 5., 10.],
[-10., -5., 0., 5., 10.],
[-10., -5., 0., 5., 10.]])
'''
y
'''
array([[-10, -10, -10, -10, -10],
[ -5, -5, -5, -5, -5],
[ 0, 0, 0, 0, 0],
[ 5, 5, 5, 5, 5],
[ 10, 10, 10, 10, 10]])
'''
np.r_[0:10:1]
np.c_[0:10:1]
'''
array([[0],
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9]])
'''
np.zeros((3,4),dtype=int)
'''
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
'''
yu_array = np.array([1,2,3,4])
yu_array = np.zeros_like(yu_array)
np.ones((3,4),dtype=int)
'''
array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
'''
np.ones((3,4),dtype=int) * 5
'''
array([[5, 5, 5, 5],
[5, 5, 5, 5],
[5, 5, 5, 5]])
'''
x = np.empty(5)
x.shape
x.fill(1)
yu_array = np.array([1,2,3,4])
yu_array = np.ones_like(yu_array)
np.identity(5)
'''
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
'''
四则运算
import numpy as np
x = np.array([5,3])
x = np.array([2,3])
np.multiply(x,y)
x = np.array([[5,3],[6,7]])
y = np.array([[2,3],[5,9]])
np.multiply(x,y)
'''
array([[10, 9],
[30, 63]])
'''
x = np.array([[5,3],[6,7]])
y = np.array([[2,3],[5,9]])
np.dot(x,y)
'''
array([[25, 42],
[47, 81]])
'''
np.dot(y,x)
'''
array([[28, 27],
[79, 78]])
'''
x = np.arange(5)
y = np.array([1,1,2,4,4])
x == y
x = np.array([0,1,2,3,0])
y = np.array([0,1,2,4,4])
np.logical_and(x,y)
np.logical_or(x,y)
np.logical_xor(x,y)
x = np.array([0,1,4,4,0])
y = np.array([1,1,0,1,4])
np.logical_not(x,y)
随机模块
import numpy as np
np.random.rand(3,2)
np.random.random_sample((3,2))
'''
array([[0.23897124, 0.50091748],
[0.31752995, 0.53164724],
[0.19966394, 0.72266036]])
'''
np.random.randint(10,size=(3,2))
'''
array([[9, 5],
[8, 9],
[8, 2]])
'''
np.random.randint(0,10,3)
mu,sigma = 0,0.1
np.random.normal(mu,sigma,10)
'''
array([ 0.01262138, -0.00472471, -0.05136768, -0.17169898, 0.06712731,
-0.11910324, -0.03256319, -0.09062116, -0.0936965 , -0.12636623])
'''
np.set_printoptions(precision=2)
mu,sigma = 0,0.1
np.random.normal(mu,sigma,10)
'''
array([ 0.02, 0.11, -0.08, 0.28, -0.11, 0.06, -0.08, -0.29, -0.13,
0.06])
'''
yu_array = np.arange(10)
np.random.shuffle(yu_array)
yu_array
np.random.seed(0)
np.set_printoptions(precision=2)
mu,sigma = 0,0.1
np.random.normal(mu,sigma,10)
'''
array([ 0.18, 0.04, 0.1 , 0.22, 0.19, -0.1 , 0.1 , -0.02, -0.01,
0.04])
'''
文件读写
data = []
with open('yu.txt') as f:
for line in f.readlines():
fileds = line.split()
cur_data = [float(x) for x in fileds]
data.append(cur_data)
data = np.array(data)
data = np.loadtxt('yu.txt')
%%writefile liu.txt
1,2,3,4
2,3,4,5
data = np.loadtxt('liu.txt', delimiter=',')
%%writefile liu1.txt
1,2,3,4
2,3,4,5
7,8,9,0
3,4,6,9
1,3,5,6
data = np.loadtxt('liu1.txt', delimiter=',',skiprows=4)
np.loadtxt('liu1.txt', delimiter=',',usecols=(0,1,2))
'''
array([[1., 2., 3.],
[2., 3., 4.],
[7., 8., 9.],
[3., 4., 6.],
[1., 3., 5.]])
'''
数组保存
import numpy as np
yu_array = np.array([[1,2,3],[4,5,6]])
np.savetxt('yu1.txt',yu_array, fmt='%d',delimiter=',')
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0e0abcaaf42936b8559e6a6922aa5132.png)
yu_array = np.array([[1,2,3],[4,5,6]])
np.save('yu_array.npy',yu_array)
np.load('yu_array.npy')
'''
array([[1, 2, 3],
[4, 5, 6]])
'''
yu_array1 = np.array([[1,2,3],[4,5,6]])
yu_array2 = np.arange(10)
np.savez('ming.npz',a = yu_array1,b = yu_array2)
data= np.load('ming.npz')
data['a']
'''
array([[1, 2, 3],
[4, 5, 6]])
'''