#python #arrays #numpy #matrix
#python #массивы #numpy #матрица
Вопрос:
У меня есть такая матрица:
[[-0.96092685 1.16253848]
[ 1.49414781 0.265738 ]
[ 0.02689231 -1.09912591]
...
[ 0.16677277 1.43807138]
[-0.36808792 -0.03435113]
[-0.3693595 0.44464701]]
и еще одна такая матрица:
[-1 1 -1 -1 -1 -1 ... 1 -1 1 -1 1 -1 -1 -1 1 1 -1 1
-1 1 -1 1 1 -1 1 1 1 -1 1 -1 1 -1 -1 -1]
теперь я хочу, чтобы top поместил последнюю матрицу в виде столбца в первой матрице, и я сделал:
y=yL.reshape(len(yL),1)
data=np.concatenate((XL,y),axis=1)
но результат:
[[-0.96092685 1.16253848 -1. ]
[ 1.49414781 0.265738 1. ]
[ 0.02689231 -1.09912591 -1. ]
...
[ 0.16677277 1.43807138 -1. ]
[-0.36808792 -0.03435113 -1. ]
[-0.3693595 0.44464701 -1. ]]
но я хочу, чтобы 1 и -1 были int, а не float, как я могу это сделать?
Ответ №1:
Вы не можете. В numpy все элементы a np.array
должны использовать один и тот же тип данных. Если вы хотите, чтобы столбцы имели разные типы данных, вам следует использовать Pandas .
Комментарии:
1. спасибо, но если я напишу свою матрицу таким образом, у меня может быть другой тип данных: dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]]
2. @MementoMori: это не массив numpy, а простой список Python. Это совершенно разные животные!