Nếu tôi có z = cumsum([ 0, 1, 2, 6, 9 ])
, cung cấp cho tôi z = [ 0, 1, 3, 9, 18 ]
, làm cách nào tôi có thể quay lại mảng gốc [ 0, 1, 2, 6, 9 ]
?Nghịch đảo của hàm cumsum numpy là gì?
Trả lời
z[1:] -= z[:-1].copy()
Ngắn và ngọt, không có vòng lặp Python chậm. Chúng tôi có quan điểm của tất cả, nhưng các yếu tố đầu tiên (z[1:]
) và tất cả, nhưng cuối cùng (z[:-1]
), và trừ yếu tố. Bản sao đảm bảo chúng tôi trừ các giá trị phần tử gốc thay vì các giá trị mà chúng tôi đang tính toán. (On NumPy 1.13 and up, bạn có thể bỏ qua cuộc gọi copy
.)
Bạn có thể sử dụng np.diff
để tính toán các phần tử 1...N
sẽ lấy sự khác biệt giữa hai yếu tố bất kỳ. Đây là đối diện của cumsum
. Sự khác biệt duy nhất là diff
sẽ không trả lại phần tử đầu tiên, nhưng phần tử đầu tiên là giống nhau trong đầu ra ban đầu và cumsum
vì vậy chúng tôi chỉ sử dụng lại giá trị đó.
orig = np.insert(np.diff(z), 0, z[0])
Thay vì insert
, bạn cũng có thể sử dụng np.concatenate
orig = np.concatenate((np.array(z[0]).reshape(1,), np.diff(z)))
Chúng tôi cũng có thể chỉ cần sao chép và thay thế các yếu tố 1...N
orig = z.copy()
orig[1:] = np.diff(z)
ưa thích của tôi:
orig = np.r_[z[0], np.diff(z)]
Nếu bạn muốn giữ z
, bạn có thể sử dụng np.ediff1d
:
x = np.ediff1d(z, to_begin=z[0])
- 1. NumPy có nghịch đảo của unravel_index() không?
- 2. Tính nghịch đảo của hàm - Thư viện
- 3. Python NumPy - FFT và FFT nghịch đảo?
- 4. Nghịch đảo trái trong numpy hoặc scipy?
- 5. nghịch đảo của math.atan2?
- 6. Nghịch đảo của bitwise AND trong C# là gì?
- 7. Nghịch đảo của hàm số lượng tử trên một chuỗi gấu trúc là gì?
- 8. Chức năng nghịch đảo Python của hàm id (...) tích hợp
- 9. Giải quyết cho nghịch đảo của một hàm trong R
- 10. Có một nghịch đảo chung của hàm table() không?
- 11. NumPy cumsum xem xét Nans
- 12. Có một nghịch đảo của System.Diagnostics.ConditionalAttribute?
- 13. Bắt nghịch đảo (1/x) các yếu tố của một mảng NumPy
- 14. Thực hiện các hàm lượng giác nghịch đảo trong C#
- 15. Tính nghịch đảo quaternion
- 16. Số nghịch đảo trong C#
- 17. NumPy ma trận thủ đoạn gian trá - tổng của ma trận nghịch đảo lần
- 18. Sự khác biệt của giả nghịch đảo giữa scipy và NumPy
- 19. Có đáng để có một hàm trả về nghịch đảo của một hàm khác không?
- 20. ruby 1.9 - điều nghịch đảo đơn giản nhất của `string.codepoints.to_a` là gì?
- 21. numpy: logic của hàm argmin() và argmax() là gì?
- 22. STFT và ISTFT nghịch đảo trong Python
- 23. RxSwift - Debounce/Throttle "nghịch đảo"
- 24. nén vectơ trong (nghịch đảo của đại diện)
- 25. các hàm logit và logit nghịch đảo cho các giá trị cực đại
- 26. Chức năng chuyển/giải nén (nghịch đảo của mã zip)?
- 27. Có chức năng nào trong python có thể thực hiện nghịch đảo của hàm numpy.repeat không?
- 28. Mongoose: Làm thế nào để mô hình hóa một mối quan hệ nghịch đảo/nghịch đảo?
- 29. Bloom lọc nghịch đảo? khả thi?
- 30. Thuật toán để tính toán nghịch đảo của đa thức
Tôi không nghĩ rằng công trình này, tôi nhận được thông điệp này lỗi: AttributeError: 'danh sách' đối tượng không có thuộc tính 'bản sao' – Pedro
@Pedro: Đó là bởi vì bạn đang sử dụng một danh sách thay vì một mảng. Mặc dù ký hiệu của câu hỏi, 'np.cumsum' trả về một mảng. – user2357112
Đúng vậy! – Pedro