我试图用向量追加一个空数组。然而,无论我使用什么命令,结果都不是我想要的,因为结果是一个向量,我想要一个数组。这是我的代码示例(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]任何人都可以帮助我吗?
看来你只需要布尔索引:
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]]
根据你的代码,我认为你想要的输出是一个包含从零开始的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]])