@Numpy nd array
科学计算库Numpy nd array结构,示例代码
#打印当前Numpy版本
print(np.__version__)
#构造一个全零的矩阵,并打印其占用的内存大小
arrayZero = np.zeros((5,5))
print(np.shape(arrayZero))#打印数组中额行列
print('%d bytes'%(arrayZero.size *arrayZero.itemsize))
#打印一个函数的帮助文档,比如numpy.add
print(help(np.info(np.add)))
#创建一个10-49的数组,并将其倒序排序
arrayOne = np.arange(10,50,1)
print(arrayOne)
arrayOneRes = arrayOne[::-1]
print(arrayOneRes)
#找到一个数组中不为0的索引
print(np.nonzero([1,2,3,4,0,0,0,5,6,7]))
#随机构造一个3*3矩阵,并打印其中最大与最小值
arrayRandoms = np.random.random((3,3))
print(arrayRandoms)
print(np.max(arrayRandoms))
print(arrayRandoms.max())
print(np.min(arrayRandoms))
print(arrayRandoms.min())
#构造一个5*5的矩阵,令其值都为1,并在最外层加上一圈0
arrayTwo = np.ones((5,5))
print(arrayTwo)
arrayTwo = np.pad(arrayTwo,pad_width=1,mode='constant',constant_values=0)
print(arrayTwo)
#构建一个shape为(6,7,8)的矩阵,并找到第100个元素的索引值
print(np.unravel_index(100,(6,7,8)))
#对一个5*5的矩阵做归一化操作
arrayThree = np.random.random((5,5))
arrayThreeMin = arrayThree.min()
arrayThreeMax = arrayThree.max()
arrayThree = (arrayThree - arrayThreeMin)/(arrayThreeMax - arrayThreeMin)
print(arrayThree)
#找到两个数组中相同的值
z1 = np.random.randint(0,10,10)
z2 = np.random.randint(0,10,10)
print(z1)
print(z2)
print(np.intersect1d(z1,z2))
#得到今天 明天 昨天的日期
yesterday = np.datetime64('today','D') - np.timedelta64(1,'D')
today = np.datetime64('today','D')
tommorow = np.datetime64('today','D')+np.timedelta64(1,'D')
print(yesterday)
print(today)
print(tommorow)
#得到一个月中所有的天
print(np.arange('2025-04','2025-05',dtype = 'datetime64[D]'))
#得到一个数的整数部分
arrayFour = np.random.uniform(0,10,10)
print(arrayFour)
print(np.floor(arrayFour))
#构造一个数组,让它不能被改变
arrayFive = np.zeros(5)
arrayFive.flags.writeable = False
#arrayFive[0] = 1
print(arrayFive)
#打印大数据的部分值,全部值
np.set_printoptions(threshold =5)
arraySix = np.zeros((15,15))
print(arraySix)
#找到在一个数组中,最接近一个数的索引
arraySeven = np.arange(100)
v = np.random.uniform(0,100)
print(v)
index = (np.abs(arraySeven - v)).argmin()
print(arraySeven[index])
#32位float类型和32位int类型转换
arrayEight = np.arange(10,dtype = np.int32)
print(arrayEight.dtype)
arrayEightRes = arrayEight.astype(np.float32)
print(arrayEightRes.dtype)
#打印数组元素位置坐标与数值
arratNine = np.arange(9).reshape(3,3)
for index,value in np.ndenumerate(arratNine):
print(index,value)
#按照数组的某一列进行排序
arrayTen = np.random.randint(0,10,(3,3))
print(arrayTen)
print(arrayTen[arrayTen[:,:].argsort()])
#统计数组中每个数值出现的次数
arrayA = np.array([1,1,1,2,2,3,3,4,5,8])
print(np.bincount(arrayA))
#如何对一个四维数组的最后两维来求和
arrayB = np.random.randint(0,10,(4,4,4,4))
print(arrayB)
res = arrayB.sum(axis=(-2,-1))
print(res)
#交换矩阵中的两行
arrayC = np.arange(25).reshape(5,5)
print(arrayC)
arrayC[[0,1]] = arrayC[[1,0]]
print(arrayC)
#找到一个数组中最常出现的数字
arrayD = np.random.randint(0,10,50)
print(arrayD)
print(np.bincount(arrayD).argmax())
#快速查找TOP K
arrayE = np.arange(10000)
np.random.shuffle(arrayE)
n = 5
print(arrayE[np.argpartition(-arrayE,n)[:n]])