1.把n维变成1维a.flatten()
import numpy as np
a = np.arange(1,28).reshape(3,3,3)
for i in a.flat:
print(i,',',end='')
print(a.flatten())
2.两个矩阵合并
np.vstack((a,b))上下合并
import numpy as np
a = np.arange(1,10)
b = np.arange(10,19)
c = np.vstack((a, b))
print(c.shape)
np.hstack((a,b))左右合并
import numpy as np
a = np.arange(1,10).reshape(3,3)
b = np.arange(10,19).reshape(3,3)
c = np.hstack((a, b))
print(c)
3.矩阵分割
np.split默认axis为0,就是对行进行分割,也可用vsplit;axis为1就是对列进行分割,也可用split
import numpy as np
a = np.arange(0,12).reshape(4,3)
c = np.split(a,2)
print(c)
4.np.reshape
当某个轴的指定为-1时,此时numpy会根据实际的数组元素个数自动替换-1为具体的大小
5.自定义ufunc函数frompyfunc(func,nin,nout)
函数可以将计算单个值的函数转换成一个可对数组中每个元素进行计算的ufunc函数。其中nin是输入func的参数的个数,nout是func返回值的个数。
import numpy as np
def func_x(a):
y = a + 1
return y
A = [0, 1, 2]
func_ = np.frompyfunc(func_x, 1, 1)
y = func_(A)
print(y)
6.广播操作
import numpy as np
a = np.arange(0, 12).reshape(2, 6) + np.arange(1,7)
print(a)
7.文件存取
a.tofile(file_name) ,保存a到file_name文件中,file_name为字符串类型,如‘a.txt’等;从文件中读回a数组时需要指明类型,如b=np.fromfile(file_name,dtype=np.float)时会报错,正确的使用方式是b=np.fromfile(file_name,dtype=np.int32)
save和load方法(写入文件和从文件读回都不需要指明类型,存储文件类型为npy格式文件):
import numpy as np
a = np.arange(0, 12).reshape(2, 6) + np.arange(1,7)
np.save("a.npy", a)
c = np.load("a.npy")
print(c)
savetxt和loadtxt方法(保存为txt格式文件):
import numpy as np
a = np.arange(0, 12).reshape(2, 6) + np.arange(1,7)
np.savetxt("a.txt", a)
c = np.loadtxt("a.txt")
print(c)
8.多维数组的索引和切片(右边框图中的颜色和左边的指令的颜色相对应):
数组中“,”化分为几块,就是几维,如a[:,:,2],就是三维数据,提取第2轴的第三个位置元素(即第2轴整个面所有的元素)
9.数组的复制
若改变a的值,b也会相对应改变,若想得到a改变前的值,要用a.copy()
import numpy as np
a = np.array([1,2,3,4])
b = a
c = a.copy()
a[2] = 10
print(b)
print(c)