5.文件格式npy,npz保存与加载
1.np.save()函数
储存一个数组
import numpy as np
a = np.random.rand(3, 3)
np.save('C:/Users/12394/PycharmProjects/Spyder/data.npy',a)
2.np.savez()函数
存储两个数组
a = np.random.rand(3, 3)
b = np.random.rand(4, 4)
np.savez('C:/Users/12394/PycharmProjects/Spyder/data.npz',a = a, b = b)
3.读取npz、npy
文件
data = np.load('C:/Users/12394/PycharmProjects/Spyder/data.npz')
print(data['a'])
print(data['b'])
4.np.argsort|np.max
argsort
函数返回的是数组值从小到大的索引值
>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])
>>> np.argsort(x, axis=0) #按列排序
array([[0, 1],
[1, 0]])
另外说到排序,还有两个常用的函数sort和sorted,返回排序好的顺序
np.max()
np.max(aa,axis=1)
Out[157]: array([4, 9])
np.max(aa,axis=0)
Out[158]: array([5, 6, 7, 8, 9])
np.max(aa)
Out[159]: 9
aa
Out[160]:
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
3.np.where
如:可以搜相同的最大值
-
np.where(condition, x, y)
满足条件(condition),输出x,不满足输出y
aa = np.arange(10)
np.where(aa,1,-1)
array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0为False,所以第一个输出-1
-
np.where(condition)
只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标
a = np.array([2,4,6,8,10])
np.where(a > 5) # 返回索引
(array([2, 3, 4]),)
a[np.where(a > 5)] # 等价于 a[a>5]
array([ 6, 8, 10])
2.np数组合并
Python中numpy数组的合并有很多方法,如
其中最泛用的是第一个和第二个。第一个可读性好,比较灵活,但是占内存大。第二个则没有内存占用大的问题。
np.append(A,[1,2])
np.concatenate()
a=np.array([[1,2],[3,4]])
b=np.array([[5,6]])
### axis=0 列方向合并
np.append(a,b,axis=0)
Out[112]:
array([[1, 2],
[3, 4],
[5, 6]])
### 默认情况下a,b 的shape一样
np.concatenate((a,b))
Out[109]:
array([[1, 2],
[3, 4],
[5, 6]])
np.concatenate((a,b.T),axis=1)
Out[110]:
array([[1, 2, 5],
[3, 4, 6]])
或者:
np.stack()
np.hstack()
np.vstack((A,B))
np.dstack()
1. Python3 列表,数组,矩阵的相互转换
mylist = [[1, 2, 3], [4, 5, 6]]
myarray=np.array(mylist)
mymatrix = np.mat(mylist)