Как преобразовать из массива в матрицу в Python [duplicate]

Было бы неплохо выразить формулировку Тайлера Клути как расширение на Array:

extension Array {
    func chunked(by chunkSize:Int) -> [[Element]] {
        let groups = stride(from: 0, to: self.count, by: chunkSize).map {
            Array(self[$0..<[$0 + chunkSize, self.count].min()!])
        }
        return groups
    }
}

Это дает нам общий способ разбиения массива на куски.

64
задан Huey 16 April 2016 в 22:14
поделиться

4 ответа

Используйте numpy.asarray :

import numpy as np
myarray = np.asarray(mylist)
140
ответ дан A. Rodas 17 August 2018 в 22:53
поделиться
  • 1
    На самом деле, myarray = np.array(mylist) должно быть достаточно. – fgb 7 April 2013 в 23:23
  • 2
    хорошо, asarray это безопаснее, так как он не будет копировать массивы, а просто возвращает их, так что это хорошая привычка использовать его, если только он не забудет копию исходных данных – EnricoGiampieri 7 April 2013 в 23:25
  • 3
    @EnricoGiampieri, честный, но разве вам не нужно было бы получать массив из этого, несмотря ни на что? Думаю, я не понимаю, как вы не получите ни одной команды для создания нового объекта массива. – fgb 7 April 2013 в 23:29
  • 4
    обе команды создадут новый массив, начиная с списка, это точно, но часто нужно преобразовать вход в конкретный формат для применения определенного метода, и это больше похоже на случай OP. использование asarray - хорошая привычка, если нет уверенности в необходимости новой копии. просто набирать array достаточно, но почему можно пропустить возможность обучить OP некоторой хорошей привычке, пока мы здесь? – EnricoGiampieri 9 April 2013 в 15:41
  • 5
    Я просто хотел сказать, что @fgb предложил адекватное решение. функция .asarray возвращает объект numpy, тогда как '.array возвращает массив непосредственно. В любом случае, благодаря вам, ребята! – Adrian Grzywaczewski 10 March 2018 в 19:14

создать массив int и список

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)
-1
ответ дан das-g 17 August 2018 в 22:53
поделиться

Мне нужен способ сделать это без использования дополнительного модуля. Сначала перейдите в строку, затем добавьте в массив:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
4
ответ дан David_C 17 August 2018 в 22:53
поделиться

, если переменная b имеет список, вы можете просто сделать следующее:

создать новую переменную «a» как: a=[], затем присвоить список «a» как: a=b

теперь «a» имеет все компоненты списка «b» в массиве.

, чтобы вы успешно преобразовали список в массив.

-10
ответ дан Mayank Sharma 17 August 2018 в 22:53
поделиться
  • 1
    На самом деле, нет ... это совершенно неправильно. Все, что у вас есть, это две переменные, указывающие на один и тот же список, а не на массив numpy. – Ajean 25 November 2015 в 23:05
  • 2
    удалить ответ может быть хорошей идеей или исправить? Я думаю, что есть значок SO, чтобы удалить непопулярный ответ. Я думаю, что это называется значком Peer Pressure, проверьте это для деталей, я могу ошибаться в этот поздний срок :) meta.stackexchange.com/questions/2632/… – JimLohse 2 September 2016 в 00:42
Другие вопросы по тегам:

Похожие вопросы: