numpy 练习笔记(reverse)

2019-06-26  本文已影响0人  caokai001

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

如:可以搜相同的最大值

  1. 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
  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)

上一篇 下一篇

猜你喜欢

热点阅读