Вы можете использовать diff
и передать -1
в качестве аргумента periods
:
>>> df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
>>> df["dA"] = df["A"].diff(-1)
>>> df
A B dA
0 9 12 5
1 4 7 2
2 2 5 1
3 1 4 NaN
[4 rows x 3 columns]
Строки предназначены для представления текста. Аудиоданные не являются текстовыми. Попытайтесь, как можете, невозможно переместить некоторые аудиоданные в String, а затем попытаться извлечь ваши аудиоданные из String. Он не предназначен для работы.
Поскольку аудиоданные, с которыми вы хотите работать, не являются текстом, то у вас нет оснований предполагать, что String в этом процессе. Забудьте о Strings, теперь вы знаете, что они не подходят для вашей цели, поэтому оставьте их в покое полностью. Двоичные данные, такие как аудио, могут быть представлены как последовательности байтов. Например, например, массив byte [].
Удалить переменную String testString
. Не строите его, не объявляйте, полностью удаляйте. Это строка, и вы не можете использовать Strings для своей цели, поэтому избавитесь от нее.
Вместо этого давайте сосредоточимся на использовании вашей переменной byte[] test
как есть. Это уже байт [] и содержит все данные. Так что это все, что вам нужно.
Вы можете записать его с помощью System.out.write(test);
, но в консоли это не очень полезно. В OutputStream сокета это прекрасно.
Или вы можете записать его шестнадцатеричную кодированную версию с помощью:
System.out.println(getHexString(test));
Здесь вы получите полностью функциональный результат. Декодирование их обратно в байты даст вам именно те байты, с которых вы начали.