Чтобы скопировать массив NumPy в буфер обмена в Python, мы можем использовать несколько методов: использование pyperclip с np.array2string() для прямого копирования данных массива, использование DataFrame.to_clipboard() Pandas для более структурированного вывода, что особенно полезно для Excel или использовать модуль ОС для взаимодействия с командами системного буфера обмена после сохранения данных массива во временный файл.

Копирование массива NumPy в буфер обмена через Python полезно, когда нам нужно:

  • Быстро обмениваться данными с пользователями, не использующими Python.
  • Передавать данные в программы для работы с электронными таблицами, такие как Microsoft Excel или Google Sheets.
  • Облегчить визуализацию данных в различном программном обеспечении.
Содержание

1. С помощью Pyerclip

Здесь функция np.array2string() преобразует массив в строковый формат, понятный буферу обмена и другим приложениям.

Затем Pyerclip используется для копирования строкового представления массива в буфер обмена.

Вот как мы можем скопировать массив NumPy в буфер обмена через Python:

import numpy as np
import pyperclip

# Sample data: Daily average wind speeds(in mph) at weather stations in various states
wind_speeds = np.array([[10.5, 12.3, 7.8], [8.9, 11.2, 9.5], [14.1, 13.5, 10.2]])
stations = ["Station A(TX)", "Station B(CA)", "Station C(FL)"]
dates = ["2023-11-01", "2023-11-02", "2023-11-03"]

# Converting array to a string format using np.array2string
array_str = np.array2string(wind_speeds, separator=', ')
formatted_str = f"Daily Average Wind Speeds(mph) for {dates}:\n{array_str}"

# Copying to clipboard
pyperclip.copy(formatted_str)

Выход:

Daily Average Wind Speeds(mph) for ['2023-11-01', '2023-11-02', '2023-11-03']:
[[10.5, 12.3,  7.8],
 [ 8.9, 11.2,  9.5],
 [14.1, 13.5, 10.2]]

Ниже показано изображение, отображающее результаты выполнения кода в среде PyCharm.

С помощью Pyerclip

2. С использованием кадров данных Pandas

Pandas, мощная библиотека манипулирования данными на Python, может копировать массив NumPy в буфер обмена. Этот метод особенно полезен, если мы уже работаем в рабочем процессе Pandas.

Шаги:

  1. Преобразуйте массив NumPy в DataFrame Pandas в Python.
  2. Используйте метод .to_clipboard() DataFrame.

Давайте рассмотрим пример использования фрейма данных для копирования массива NumPy в буфер обмена через Python.

import numpy as np
import pandas as pd

data = np.array([[58, 77, 85], [30, 55, 75], [40, 60, 80]])
cities = ["Alaska", "Miami", "Chicago"]
months = ["January", "April", "July"]

df = pd.DataFrame(data, index=cities, columns=months)
df.to_clipboard(excel=True)

Выход:

 January April July
Alaska 58 77 85
Miami 30 55 75
Chicago 40 60 80

На снимке экрана ниже показан результат, полученный при запуске кода в редакторе PyCharm.

С использованием кадров данных Pandas

3. Скопируйте массив NumPy в буфер обмена после записи во временный файл

Если мы имеем дело с очень большими массивами или предпочитаем работать с файлами, этот метод предполагает запись массива во временный файл и последующее копирование его содержимого в буфер обмена с помощью системных команд.

Шаги:

  • Запишите массив во временный файл.
  • Используйте системную команду(например, xclip в Linux, pbcopy в macOS или clip в Windows), чтобы скопировать содержимое файла в буфер обмена.
import numpy as np
import os

gdp_growth = np.array([2.3, 2.9, 2.2, -3.4, 4.1])

temp_file = "gdp_data.txt"
np.savetxt(temp_file, gdp_growth, header='U.S. GDP Growth Rates(2018-2022)', fmt='%.1f')

# For Windows
os.system(f"type {temp_file} | clip")

Выход:

# U.S. GDP Growth Rates(2018-2022)
2.3
2.9
2.2
-3.4
4.1

На снимке экрана ниже визуально представлен результат выполнения кода в PyCharm.

Скопируйте массив NumPy в буфер обмена после записи во временный файл

Добавить комментарий