附加向量的空数组

问题描述 投票:1回答:2

我试图用向量追加一个空数组。然而,无论我使用什么命令,结果都不是我想要的,因为结果是一个向量,我想要一个数组。这是我的代码示例(s是二进制数据的数组):

import pandas as pd
import numpy as np
s=pd.read_csv('dane1.txt', header=None)
a=s.columns
a=len(a)
b=len(s)
Xi0=[]
i=0

for j in range (b):
    if (s[i][j]==0):
        z=[]
        for k in range(a):
            z.append(s[k][j])
        Xi0=np.append(Xi0,z,axis=0)

换句话说,我希望以这种方式由z向量组成的数组:

[z
z
z] etc

我得到了[z z z]任何人都可以帮助我吗?

arrays python-3.x pandas numpy
2个回答
0
投票

看来你只需要布尔索引:

arr = s.values
Xi0 = arr[arr[:, 0] == 0]
 print (Xi0)
[[0 1 0 1 0 1]
 [0 0 0 1 0 0]
 [0 0 0 0 1 0]
 [0 1 1 1 0 1]
 [0 1 0 0 1 1]
 [0 1 1 0 1 0]]

0
投票

根据你的代码,我认为你想要的输出是一个包含从零开始的s行的数组。如果这是真的,只需使用numpy

result = s.values[s.values[:, 0] == 0]
result
array([[0, 1, 0, 1, 0, 1],
       [0, 0, 0, 1, 0, 0],
       [0, 0, 0, 0, 1, 0],
       [0, 1, 1, 1, 0, 1],
       [0, 1, 0, 0, 1, 1],
       [0, 1, 1, 0, 1, 0]])
© www.soinside.com 2019 - 2024. All rights reserved.