Pandas - to_numpy

to_numpy() Metodu

pandas.DataFrame.to_numpy() metodu, bir pandas DataFrame'i bir NumPy dizisine (numpy.ndarray) dönüştürmek için kullanılır.

Bu, bir DataFrame'deki verileri, hesaplama ve analiz için yaygın olarak kullanılan temel bir veri yapısı olan NumPy formatında elde etmenin tercih edilen yoludur.

Sözdizimi:

DataFrame.to_numpy(dtype=None, 
                    copy=False, 
                    na_value=<no_default>)

Metodun Kullanımı ve Özeti

Varsayılan olarak, dönen dizinin veri türü (dtype), DataFrame'deki tüm türlerin ortak NumPy veri türü olacaktır. Örneğin, DataFrame'de float16 ve float32 türleri varsa, sonuç float32 olacaktır. Farklı veri türlerinin olduğu durumlarda, çıktı dizisi object (nesne) veri türüne sahip olabilir.

Parametreler

Parametre Tür Açıklama
dtype str veya numpy.dtype, isteğe bağlı numpy.asarray()'ye iletilecek veri türü. Belirtilirse, dönen dizinin veri türü bu olacaktır.
copy bool, varsayılan False Dönüş değerinin bir kopyasının istenip istenmediğini belirtir. copy=True, kesinlikle gerekli olmasa bile bir kopyanın oluşturulmasını sağlar. copy=False ise kopyalama yapılmayacağını garanti etmez.
na_value Any, isteğe bağlı Eksik değerler (NaN, None, vb.) için kullanılacak değer. Varsayılan değer, dtype'a ve DataFrame sütunlarının veri türlerine bağlıdır.

Dönüş Değeri

Örnek Kullanım

1. Basit bir DataFrame'i NumPy dizisine dönüştürme:

Veri çerçevemiz;

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2],
    "B": [3, 4]
})
A B
0 1 3
1 2 4

DataFrame'i NumPy dizisine dönüştür;

array = df.to_numpy()
print(array)

Çıktı:

[[1 3]
 [2 4]]

2. Farklı veri türlerinin olduğu durumda, en düşük ortak tür kullanılır:

import pandas as pd

df = pd.DataFrame({"A": [1, 2], "B": [3.0, 4.5]})
print(df)

Çıktı:

A B
0 1 3.0
1 2 4.5

A sütununda tamsayı (integer) değerler, B sütununda ise ondalıklı (float) değerler var. Bakalım dönüştürme işlemi sonucu türler nasıl değişecek?

array = df.to_numpy()
print(array)

Çıktı:

[[1.  3. ]
 [2.  4.5]]

Not: Tam sayı (int) ve ondalık sayı (float) içerdiği için ortak tür float olmuştur.

Sayısal ve sayısal olmayan türlerin karışımı için, çıktı dizisi obje / nesne türüne sahip olacaktır.

df['C'] = pd.date_range('2000', periods=2)
print(df)

Çıktı:

A B C
0 1 3.0 2000-01-01
1 2 4.5 2000-01-02

Dönüşümü gerçekleştirelim;

print(df.to_numpy())

Çıktı:

array([[1, 3.0, Timestamp('2000-01-01 00:00:00')],
       [2, 4.5, Timestamp('2000-01-02 00:00:00')]], dtype=object)

Çıktıda görüldüğü üzere (dtype=object) sayısal ve sayısal olmayan (zaman) türlerin karışımı için, çıktı dizisi obje / nesne türüne dönüştü.

Kaynak: