簡體   English   中英

如何在大型numpy數組中分配列值?

[英]How to assign column values in large numpy array?

我是Python編程的新手,在將特定的值分配給非常大的numpy.array的第一列時遇到問題。

這是我使用的代碼:

import numpy as np

a = np.zeros ((365343020, 9), dtype = np.float32)

for n in range (0, 36534302):
    a[n*10:(n+1)*10,0] = n

第二行是我創建數組的地方,其中包含365343020行和9列,並用零填充; 而連續的“ for”是要用一個向量替換數組的第一列,該向量的元素是36534302個連續整數,每個整數重復10次(例如[0,0,…,0,1,1,…,1,2, 2,...,36534301,36534301,...,36534301])。

該代碼似乎可以根據需要進行響應,直到大約168000000行或該數組為止,然后將10個重復的數字替換為最后一個數字為奇數,再替換為第二個(偶數)重復。

我一直在尋找有關視圖和副本之間差異的解釋。 但是,即使嘗試手動定義數組特定單元的內容(循環錯誤地定義了該單元的內容),它也不會改變。

您能幫我解決這個問題嗎? 謝謝

也許您的程序占用了太多的內存。 這是您的代碼的一些基本數學。

Date type: float32
Bits used: 32 bits
Size of array: 3288087180 (365343020*9)
Total memory consumed: 105218789760 bits(13.15234872 GB)

1.如果數組中存儲的值不大,請嘗試使用float8位。
2.嘗試減小陣列大小。
3、1和2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM