np.where():
- 返回的是满足where的条件的元素的索引.
- 是一个元素: (x坐标, y坐标)
stack(), hstack(), vstack():
-
stack(): 按给定轴的方向进行拼接, 轴的维度不同可能导致"转置"
- 例一
import numpy as np
a=[[1,2,3],
[4,5,6]]
print("列表a如下:")
print(a)
print("axis=0")
c=np.stack(a,axis=0)
print(c)
print("axis=1")
c=np.stack(a,axis=1)
print(c)
- 例二
import numpy as np
a=[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
print("列表a如下:")
print(a)
print("axis=0")
c=np.stack(a,axis=0)
print(c)
print("axis=1")
c=np.stack(a,axis=1)
print(c)
-
hstack(): 按水平方向拼接----(其实就是, 你将这个矩阵画出来, 横着拼, 竖着拼一目了然)
import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.hstack((a,b)))
import numpy as np
a=[[1],[2],[3]]
b=[[4],[5],[6]]
print(np.hstack((a,b)))
-
vstack(): 按垂直方向拼接----但是, 你心里要清楚拼接的单位是什么
import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.vstack((a,b)))
import numpy as np
a=[[1],[2],[3]]
b=[[4],[5],[6]]
print(np.vstack((a,b)))
python list[-1]: 取最后一个元素
np.random.shuffle(x)与np.random.permutation(x):
- 将数组打乱随机排列 两种方法
- np.random.shuffle(x):在原数组上进行,改变自身序列,无返回值。
- np.random.permutation(x):不在原数组上进行,返回新的数组,不改变自身数组。
返回满足条件元素的索引:
- np.argwhere( a ) : a----条件
Python中reshape函数参数-1的意思:
- 就是自己懒得算, 自动补那个维度的大小
- 对于维度: (x, y, z)三维, (x, y)二维
- 初始维度:
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
z.shape
(4, 4)
- z.reshape(-1): 只有一个维度
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
- z.reshape(-1, 1): 有两个维度. 第一个维度大小为1, 另外一个维度自己算
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12],
[13],
[14],
[15],
[16]])
- z.reshape(-1, 2): 有两个维度, 第二个维度为2, 第一个自己算
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12],
[13, 14],
[15, 16]])
np.max与np.maximum的区别:
#维度上的最大值:
np.max(a, axis=None, out=None, keepdims=False)
#传入两个x,y并逐位比较取最大值:
np.maximum(x, y, out=None)
numpy——.npy和.npz文件:
-
npy文件——Numpy专用的二进制格式
- np.load()和np.save()
- 数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中
- 保存为.npy文件后如果使用记事本等工具打开浏览会出现乱码
- 够浏览内容的话建议不要使用.npy文件
import numpy as np
# 将数组以二进制格式保存到磁盘
arr=np.arange(5)
np.save('test',arr)
# 读取数组
print(np.load('test.npy'))
-
npz文件——压缩文件
- np.savez()函数可以将多个数组保存到同一个文件
- np.savez()函数的第一个参数是文件名,其后的参数都是需要保存的数组
- np.savez()函数输出的是一个扩展名为.npz的压缩文件,它包含多个与保存的数组对应的npy文件(由save()函数保存),文件名对应数组名
- 读取.npz文件时使用np.load()函数,返回的是一个类似于字典的对象,因此可以通过数组名作为关键字对多个数组进行访问
import numpy as np
# 将多个数组保存到磁盘
a = np.arange(5)
b = np.arange(6)
c = np.arange(7)
np.savez('test', a, b, c_array=c) # c_array是数组c的命名
# 读取数组
data = np.load('test.npz') #类似于字典{‘arr_0’:a,’arr_1’:b,’c_array’:c}
print('arr_0 : ', data['arr_0'])
print('arr_1 : ', data['arr_1'])
print('c_array : ', data['c_array'])
--------------------------------------------------------------------------------
arr_0 : [0 1 2 3 4]
arr_1 : [0 1 2 3 4 5]
c_array : [0 1 2 3 4 5 6]
参考博文:https://www.cnblogs.com/Lilu-1226/p/9768368.html
扫描二维码关注公众号,回复:
13440892 查看本文章
np.isinf():
- 作用:测试元素是正无穷还是负无穷
- 返回:布尔值(如果是正无穷或负无穷就返回true,否则返回false)
np.random.choice:
自己想要探究以概率p进行选择会有多大的变化,
import numpy as np
a1 = np.random.choice(a=5, size=3, replace=False, p=[0.1, 0.2, 0.25, 0.05, 0.4])
print(a1)
a2 = np.random.choice(a=5, size=3, replace=False, p=[0.1, 0.2, 0.25, 0.05, 0.4])
print(a2)
a3 = np.random.choice(a=5, size=3, replace=False, p=[0.1, 0.2, 0.25, 0.05, 0.4])
print(a3)
事实发现, 变化还是挺大的