나는 x = 2000에서 5000까지의 3000 단계의 진폭 곡선과 50000 단계의 x = 0에서 10000까지의 데이터 곡선을 가지고 있습니다. 이제 데이터를 정규화 (진폭 곡선을 곱함)하고 싶지만, 두 배열의 길이가 다르며 시작점이 다릅니다.Python 두 개의 다른 크기의 배열 곱하기
둘 중 하나의 크기를 조정하지 않고이 작업을 수행 할 수있는 방법이 있습니까? (진폭 범위를 벗어나는 모든 값은 0이 될 수 있습니다)
나는 x = 2000에서 5000까지의 3000 단계의 진폭 곡선과 50000 단계의 x = 0에서 10000까지의 데이터 곡선을 가지고 있습니다. 이제 데이터를 정규화 (진폭 곡선을 곱함)하고 싶지만, 두 배열의 길이가 다르며 시작점이 다릅니다.Python 두 개의 다른 크기의 배열 곱하기
둘 중 하나의 크기를 조정하지 않고이 작업을 수행 할 수있는 방법이 있습니까? (진폭 범위를 벗어나는 모든 값은 0이 될 수 있습니다)
당신은 아마 while 루프를 사용하고 각 배열에 대한 인덱스를 추적하기 만하면되므로리스트의 크기를 조정하지 않아도된다고했습니다. 범위의 끝 부분에 도달하면 루핑을 중지하십시오.
는 또한
>>> b = [2, 4, 6, 8]
>>> c = [1, 3, 5, 7, 9]
>>> map(lambda x : x[0]*x[1], zip(b, c[1:]))
>>> [6, 20, 42, 72]
처럼 뭔가를 우편 및지도 기능을 사용할 수 있습니다하지만 난 그게 뭔가 당신이 "수"확실하지 않다.
크기가 다른 두 개의 배열을 정규화 할 수 있지만 응용 프로그램에 적합한 것이 무엇인지 결정해야합니다.
예제 코드 : 나는 어떻게
a1 = [1,2,3,4]
a2 = [20,30]
내가 A2에 의해 A1의 값을 확장하려면 어떻게해야합니까? 지표에 의해
귀하의 데이터에 적합한 것은 무엇입니까?
행 및 열 레이블을 정의하는 방법에 영리한 사람이라면 팬더를 사용하면됩니다. 데이터 프레임을 곱하면 팬더는 열과 행 레이블이 일치하는 데이터를 정렬합니다. 레이블이 일치하지 않는 값은 NaN으로 설정됩니다. 다음 예를 고려하십시오.
# every other step
df1 = pandas.DataFrame(
data=np.arange(1, 10).reshape(3, 3),
columns=[1, 3, 5],
index=[0, 2, 4]
)
print(df1)
1 3 5
0 1 2 3
2 4 5 6
4 7 8 9
# every step
df2 = pandas.DataFrame(
data=np.arange(0, 25).reshape(5, 5),
columns=[1, 2, 3, 4, 5],
index=[0, 1, 2, 3, 4]
)
1 2 3 4 5
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
4 20 21 22 23 24
print(df1 * df2)
1 2 3 4 5
0 0 -- 4 -- 12 # <-- labels match
1 -- -- -- -- --
2 40 -- 60 -- 84 # <-- labels match
3 -- -- -- -- --
4 140 -- 176 -- 216 # <-- labels match
# ^ ^ ^
# | | |