import numpy as np
创建一个长度为10的空向量:
Z = np.zeros(10) print(Z)
如何找到任何一个数组的内存大小
Z = np.zeros((10,10)) print("%d bytes" % (Z.size * Z.itemsize))
创建一个值域范围从10到49的向量
# Z = np.arange(10,50) # print(Z)
反转一个向量(第一个元素变为最后一个)
# Z = np.arange(50) # Z = Z[::-1] # print(Z)
创建一个 3x3 并且值从0到8的矩阵
# Z = np.arange(9).reshape(3,3) # print(Z)
找到数组[1,2,0,0,4,0]中非0元素的位置索引
nz = np.nonzero([1,2,0,0,4,0])
创建一个 3x3 的单位矩阵
# Z = np.eye(3)
创建一个二维数组,其中边界值为1,其余值为0
# Z = np.ones((10,10)) # Z[1:-1,1:-1] = 0
对于一个存在在数组,如何添加一个用0填充的边界
# Z = np.ones((5,5)) # Z = np.pad(Z, pad_width=1, mode='constant', constant_values=0) # print(Z)
对一个5x5的随机矩阵做归一化
# Z = np.random.random((5,5)) # Zmax, Zmin = Z.max(), Z.min() # Z = (Z - Zmin)/(Zmax - Zmin) # print(Z)
创建一个将颜色描述为(RGBA)四个无符号字节的自定义dtype
# color = np.dtype([("r", np.ubyte, 1), # ("g", np.ubyte, 1), # ("b", np.ubyte, 1), # ("a", np.ubyte, 1)]) # color
一个5x3的矩阵与一个3x2的矩阵相乘,实矩阵乘积是什么
# Z = np.dot(np.ones((5,3)), np.ones((3,2))) # print(Z)
给定一个一维数组,对其在3到8之间的所有元素取反
# Z = np.arange(11) # Z[(3 < Z) & (Z <= 8)] *= -1 # print(Z)
如何从零位对浮点数组做舍入
# Z = np.random.uniform(-10,+10,10) # print (np.copysign(np.ceil(np.abs(Z)), Z))
如何找到两个数组中的共同元素
# Z1 = np.random.randint(0,10,10) # Z2 = np.random.randint(0,10,10) # print(np.intersect1d(Z1,Z2))
如何得到昨天,今天,明天的日期
# yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D') # today = np.datetime64('today', 'D') # tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D') # print ("Yesterday is " + str(yesterday)) # print ("Today is " + str(today)) # print ("Tomorrow is "+ str(tomorrow))
创建一个长度为10的随机向量,其值域范围从0到1,但是不包括0和1
# Z = np.linspace(0,1,11,endpoint=False)[1:] # print (Z)
将笛卡尔坐标下的一个10x2的矩阵转换为极坐标形式
# Z = np.random.random((10,2)) # X,Y = Z[:,0], Z[:,1] # R = np.sqrt(X**2+Y**2) # T = np.arctan2(Y,X) # print (R) # print (T)
创建一个长度为10的向量,并将向量中最大值替换为1
# Z = np.random.random(10) # Z[Z.argmax()] = 0 # print (Z)
如何将32位的浮点数(float)转换为对应的整数(integer)
# Z = np.arange(10, dtype=np.int32) # Z = Z.astype(np.float32, copy=False) # print (Z)
减去一个矩阵中的每一行的平均值
# X = np.random.rand(5, 10) # # Recent versions of numpy # Y = X - X.mean(axis=1, keepdims=True) # print(Y)
根据索引列表(I),如何将向量(X)的元素累加到数组(F)
# X = [1,2,3,4,5,6] # I = [1,3,9,3,4,1] # F = np.bincount(I,X) # print (F)
考虑一个维度(5,5,3)的数组,如何将其与一个(5,5)的数组相乘
# A = np.ones((5,5,3)) # B = 2*np.ones((5,5)) # print (A * B[:,:,None])
如何通过滑动窗口计算一个数组的平均数
# def moving_average(a, n=3) : # ret = np.cumsum(a, dtype=float) # ret[n:] = ret[n:] - ret[:-n] # return ret[n - 1:] / n # Z = np.arange(20) # print(moving_average(Z, n=3))
如何对布尔值取反,或者原位(in-place)改变浮点数的符号(sign)
# Z = np.random.randint(0,2,100) # np.logical_not(Z, out=Z)
如何找到一个数组中出现频率最高的值
# Z = np.random.randint(0,10,50) # print (np.bincount(Z).argmax())
对于一个一维数组X,计算它boostrapped之后的95%置信区间的平均值
# X = np.random.randn(100) # random 1D array # N = 1000 # number of bootstrap samples # idx = np.random.randint(0, X.size, (N, X.size)) # means = X[idx].mean(axis=1) # confint = np.percentile(means, [2.5, 97.5]) # print (confint)