>  기사  >  백엔드 개발  >  가변 길이 Python 목록을 자리 표시자를 사용하여 조밀한 NumPy 배열로 변환하는 방법은 무엇입니까?

가변 길이 Python 목록을 자리 표시자를 사용하여 조밀한 NumPy 배열로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-03 22:03:03455검색

How to Convert Variable-Length Python Lists to a Dense NumPy Array with Placeholders?

Python 가변 길이 목록을 조밀한 NumPy 배열로 효율적으로 변환

가변 길이 Python 목록을 NumPy 배열 결과로 직접 변환 이는 바람직하지 않을 수 있는 "객체" 유형의 배열입니다. 또는 np.array(v, dtype=np.int32)를 사용하여 특정 유형을 강제로 적용하려고 하면 배열에 시퀀스가 ​​존재하기 때문에 예외가 발생합니다.

따라서 다음과 같은 조밀한 NumPy 배열을 생성하려면 특정 데이터 유형(예: int32)에 누락된 값을 자리 표시자로 채우는 동안 itertools.zip_longest 함수를 활용할 수 있습니다.

예를 들어 입력 시퀀스 v = [[1], [1, 2 ]], 자리 표시자가 0인 itertools.zip_longest를 사용하면 다음과 같이 밀도가 높은 NumPy 배열을 효율적으로 얻을 수 있습니다.

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>

이렇게 하면 원하는 출력이 생성됩니다.

array([[1, 0],
       [1, 2]])

참고 Python 2의 경우 itertools.izip_longest를 대신 사용하세요.

위 내용은 가변 길이 Python 목록을 자리 표시자를 사용하여 조밀한 NumPy 배열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.