我想创建一个包含另一个数组的比率的新数组。你知道吗
第一个简单示例:
import numpy as np
week = np.full((3, 4), 2, dtype=float)
week[:,2] = 0
week[2,0:2] =0
week[0,3] =0.99
week[1,3] =1.99
week[2,3] =0.89
week
退货
array([[2. , 2. , 0. , 0.99],
[2. , 2. , 0. , 1.99],
[0. , 0. , 0. , 0.89]])
现在我要计算一个n数组,它包含周[:,3]的比率
ratio = week[:,3].reshape(1,-1).T/ week[:,3]
退货
array([[1. , 0.497, 1.112],
[2.01 , 1. , 2.236],
[0.899, 0.447, 1. ]])
正是我想要的。你知道吗
更一般的情况 前四个维度可以改变的5d数组
weeks_5d= np.full((1,1,2, 3, 4), 2, dtype=float)
weeks_5d[:,:,:,:,2] = 0
weeks_5d[:,:,0,2,0:2] =0
weeks_5d[:,:,1,1,0:2] =0
weeks_5d[:,:,:,0,3] = 0.99
weeks_5d[:,:,:,1,3] = 1.99
weeks_5d[:,:,:,2,3] = 0.89
weeks_5d
退货
array([[[[[2. , 2. , 0. , 0.99],
[2. , 2. , 0. , 1.99],
[0. , 0. , 0. , 0.89]],
[[2. , 2. , 0. , 0.99],
[0. , 0. , 0. , 1.99],
[2. , 2. , 0. , 0.89]]]]])
现在我要为每个数组计算相同的比率
变换5darray返回奇怪的结果。你知道吗
我需要的是
array([[[[[1. , 0.497, 1.112],
[2.01 , 1. , 2.236],
[0.899, 0.447, 1. ]]],
[[1. , 0.497, 1.112],
[2.01 , 1. , 2.236],
[0.899, 0.447, 1. ]]]]])
我认为循环是你最大的希望,有一个缓慢和快速的方法:
慢方法:
印刷品
显然,在python中循环数组的速度很慢,但这正是
numba
发明的目的:快的方法
印刷品
相关问题 更多 >
编程相关推荐