Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何保存多维不同数组形状_Python_Numpy - Fatal编程技术网

Python 如何保存多维不同数组形状

Python 如何保存多维不同数组形状,python,numpy,Python,Numpy,如果可能的话,我想知道如何将不同形状的多维数组保存到一个数组中,以便可以轻松调用单个数组。例如,第一个数组可以是(1100),第二个可以是(4500),第三个可能是(1000,6)。 代码如下: #Function for the means of C C_values = [] def Creation(data, h): Cmean = np.mean(data,axis=1).reshape(data.shape[0],1) S = C_values.append(Cmean)

如果可能的话,我想知道如何将不同形状的多维数组保存到一个数组中,以便可以轻松调用单个数组。例如,第一个数组可以是(1100),第二个可以是(4500),第三个可能是(1000,6)。 代码如下:

#Function for the means of C
C_values = []


def Creation(data, h):
  Cmean = np.mean(data,axis=1).reshape(data.shape[0],1)
  S = C_values.append(Cmean)
  m = np.log2(h)
  for l in range(1,int(m)):
    r = 0                                                  
    size = h//(2**(l))                                                                                                                
    C = np.array(np.zeros(shape=(data.shape[0],2**l)))                                   
    for i in range(0,C.shape[0]):                                             
      for j in range(0,C.shape[1]):
        if j == 0:
          C[i,j] = (np.mean(data[i][j:j+size]))-C_values[l-1][i]
        elif j > 0:
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i]
        elif j==0 and l>1:
          C[i,j] = (np.mean(data[i][j:j+size]))-C_values[l-1][i][j]
        elif j==1 and l>1:
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i][j-1]
        elif j>1 and l>1:
          r+=1
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i][r]
    S = C_values.append(C)
  return C_values
我尝试了使用shape(415000)的数据,这段代码成功了。我可以通过键入C_值[0]和C_值[1]来调用各个数组。但是,当我尝试使用形状(815000)的另一个数据时,我得到了一个错误:使用序列设置数组元素。参考点是

C[i,j] = (np.mean(data[i][j:j+size]))-C_values[l-1][i]

求你了,我需要帮助。欢迎评论和更正。

现在正在运行。我对代码进行了更改并添加了一些内容

#Function for the means of C
C_values = []


def Creation(data, h):
  Cmean = np.mean(data,axis=1).reshape(data.shape[0],1)
  S = C_values.append(Cmean)
  m = np.log2(h)
  for l in range(1,int(m)):                                        
    size = h//(2**(l))                                                                                                                
    C = np.array(np.zeros(shape=(data.shape[0],2**l)))                                   
    for i in range(0,C.shape[0]): 
      r = 0                                            
      for j in range(0,C.shape[1]):
        if j == 0 and l<= 1:
          C[i,j] = (np.mean(data[i][j:j+size]))-C_values[l-1][i]
        elif j > 0 and l<=1:
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i]
        elif j==0 and l>1:
          C[i,j] = (np.mean(data[i][j:j+size]))-C_values[l-1][i][j]
        elif j==1 and l>1:
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i][j-1]
        elif j>1 and l>1:
          if j%2 == 0:
            r+=1
          C[i,j] = (np.mean(data[i][(size*j):(size*j)+size]))-C_values[l-1][i][r]
    S = C_values.append(C)
  return C_values
#用于C方式的函数
C_值=[]
def创建(数据,h):
Cmean=np.mean(数据,轴=1)。重塑(数据形状[0],1)
S=C_值。追加(Cmean)
m=np.log2(h)
对于范围(1,int(m))内的l:
尺寸=h/(2**(l))
C=np.array(np.zero(shape=(data.shape[0],2**l)))
对于范围(0,C.shape[0])中的i:
r=0
对于范围(0,C.形状[1])内的j:
如果j==0,l0和l1:
C[i,j]=(np.平均值(数据[i][j:j+大小])-C_值[l-1][i][j]
elif j==1且l>1:
C[i,j]=(np.平均值(数据[i][(大小*j):(大小*j)+大小])-C_值[l-1][i][j-1]
如果j>1和l>1:
如果j%2==0:
r+=1
C[i,j]=(np.平均值(数据[i][(大小*j):(大小*j)+大小])-C_值[l-1][i][r]
S=C_值。追加(C)
返回C_值

C_值存储所有多维数组。

请将numpy标记添加到question@feverdream可以我已经做到了。