Есть ли способ использовать функции массива строк NumPy на массивах объектов, содержащих строки? - PullRequest
0 голосов
/ 20 апреля 2019

Мне пришлось хранить строки в массиве объектов, и я хотел бы использовать на нем функции, зарезервированные для массивов символов

Я использую массивы numpy для хранения последовательностей ДНК для обработки данных. Я новичок в Numpy и в целом. Я должен был использовать массивы object вместо массивов символов, поскольку массивы символов отсекали большую часть моей последовательности, поскольку обычно она имеет длину> 300 символов. Мне нужно оценить общее содержание GC во всех последовательностях, и метод numpy.count() был бы идеальным инструментом, но он явно работает только с массивами символов. Есть ли способ преобразовать мой массив надлежащим образом, чтобы использовать эти методы или альтернативный способ, которым я могу использовать?

   allCpG = np.loadtxt(CpGfile, dtype = str, delimiter = "\t", skiprows = 1)
   msk = allCpG[:,0] == chro
   CpGseqs = np.empty((allCpG[msk].shape[0],), dtype = object)
   nonCpGseqs = np.empty((allCpG[msk].shape[0],), dtype = object)
   with open(chrofile) as file:
      next(file)
      seq = ""
      for line in file:
          seq += line[:-1].upper()
   for i in range(allCpG[msk].shape[0]):
      CpGseqs[i] = seq[int(allCpG[msk][i][1]):int(allCpG[msk][i][2])]
      randindex = np.random.randint(0,len(seq)-len(CpGseqs[i]))
      nonCpGseqs[i] = seq[randindex : randindex + len(CpGseqs[i])]`

Каждая запись в CpGseqs представляет собой строку длиной не менее 300 нуклеотидов, и она была бы обрезана, если бы я использовал dtype = str вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...