Мне пришлось хранить строки в массиве объектов, и я хотел бы использовать на нем функции, зарезервированные для массивов символов
Я использую массивы 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
вместо