Ничего плохого в вашем apk. Предупреждение подсказывается, что apk не подписан. Вы можете отключить защиту воспроизведения, следуя этой tuto , и все будет работать нормально.
Вы можете найти вариант включения или отключения Защиты Google Play на той же странице настроек -> Google -> Безопасность -> Защита для Google Play, где вы найдете опции «Устройство сканирования для угроз безопасности »И« Улучшить обнаружение опасных приложений ».
blockquote>
pandas
может помочь вам.
import pandas as pd
y = [56,76,87]
c=pd.read_csv("vector.csv", names=y)
c.index=y
это даст вам следующее:
56 76 87
56 1 2 3
76 4 5 6
87 7 8 9
и вы, наконец, экспортируете вновь созданные данные
c.to_csv('new_file.csv')
Поскольку концептуально ваша первая строка и первый столбец представляют метки , вы можете рассмотреть Pandas, основанный на объектах массива NumPy:
import pandas as pd
from io import StringIO
x = """1,2,3
4,5,6
7,8,9"""
# read data; replace StringIO(x) with 'file.csv'
df = pd.read_csv(StringIO(x), header=None)
# define column and index properties
idx = [56,76,87]
df.columns = idx
df.index = idx
# export to csv
df.to_csv('out.csv')
Определите массив и список меток:
In [67]: arr = np.arange(1,10).reshape(3,3)
In [68]: y = [56,76,87]
соедините список меток с массивом:
In [69]: arr1 = np.column_stack((y,arr))
определите строку заголовка:
In [70]: header = 'null,' + ','.join([str(i) for i in y])
In [71]: header
Out[71]: 'null,56,76,87'
write с savetxt
. Обратите внимание на использование заголовка, комментариев и параметров fmt. Поиграйте с ними, если необходимо:
In [72]: np.savetxt('test.txt', arr1,header=header, fmt='%d',delimiter=',',comments='')
In [73]: cat test.txt
null,56,76,87
56,1,2,3
76,4,5,6
87,7,8,9
savetxt
записывает заголовок с символом комментария. Затем он перебирает строки (1-й dim) массива массива. Для каждой строки выполняется запись fmt%tuple(row)
, где fmt
выводится из вашего параметра. Таким образом, по своей сути это стандартная запись Python файла отформатированных строк.
Позвольте мне в этом разобраться.
«Матрица в CSV представляет собой массив пустых значений».
Не обязательно. Если ваш файл является файлом .csv, то вы можете использовать пакет csv и импортировать данные следующим образом:
import os
import csv
root = r'C:\path\to\my\csv\file'
input_file_name = r'input_data.csv'
output_file_name = r'new_data.csv'
input_path = os.path.join(root, input_file_name)
output_path = os.path.join(root, output_file_name)
Импортировать наши данные:
with open(input_path, 'r', newline ='') as f:
csv_reader = csv.reader(f, delimiter=',')
data = [i for i in csv_reader]
f.close()
Тогда вы есть список списков (который похож на массив, но является типом данных списка в Python):
[[' 1', '2', '3'], [' 4', '5', '6'], [' 7', '8', '9']]
Вот наши значения y, которые я предположил, были целыми числами:
y = [56,76,87]
[1115 ] Я позаимствовал здесь полезную функцию: Преобразование элементов списка вложенных списков из строки в целое в python
def int_conversion(my_list):
return [int(x) if not isinstance(x, list) else int_conversion(x) for x in my_list]
Наша функция выполняет преобразование некоторых типов данных, но выводит целочисленные значения:
def process_data(my_data=data):
# copy the raw data list
new_data = my_data
# Convert our y values to stings for processing
y_1 = [str(i) for i in y]
# Insert each value of our y list at the first spot in each sublist
for i in range(len(my_data)):
new_data[i].insert(0, y_1[i])
# Insert a '0' placeholder at the start of our y list
y_1.insert(0, '0')
# Insert the y list as a sublist in our main data list
new_data.insert(0, y_1)
# Convert the list values to integers
new_data = int_conversion(new_data)
# Replace the first value in the first sublist with a null (None) value
new_data[0][0] = None
# Return the results
return new_data
Обработать, а затем записать вывод:
data = process_data()
with open(output_path, mode='w', newline='') as xyz:
writer = csv.writer(xyz)
writer.writerows(data)
Тогда ваш файл должен выглядеть примерно так:
,56,76,87
56,1,2,3
76,4,5,6
87,7,8,9