Arduino Nano 33 BLE I2C speed

Hi guys,

I'm using i2c to transfer 11520 numbers (maybe it is too large, but it's what I need) from Raspberry Pi to Arduino Nano 33 BLE.
I already sent and received data successfully but at a very slow speed.
I sent 11520 floats continuously; each float contains 8 or 9 bytes (float -> str -> bytes).
So the ideal transmission time should be 11520 * 9 / 100000 = 1.0368 second.
But the actual time consumed is about 10 seconds.
Is my math wrong (i.e. it really should take this much time), or is there something wrong with my sketch?
Thanks a million for any idea.

#include <Wire.h>

#define INPUT_LEN 10
#define FEATURE_LEN 11520

// Globals, used for compatibility with Arduino-style sketches.
namespace
{
    char X_test_byteArr[INPUT_LEN];
}

void setup()
{
    Serial.begin(115200);

    // Join I2C bus as slave with address 8
    Wire.begin(0x8);
    Wire.onReceive(receivefunc);
}

void loop()
{
    delay(1);
}

void receivefunc(int num)
{
    char recv_char;
    for (size_t i = 0; i < num; i++)
    {
        recv_char = Wire.read(); // receive byte as a character
        if (recv_char != '\n')
        {
            X_test_byteArr[i] = recv_char;
        }
        else
        {
            X_test_byteArr[i] = '\0';
            Serial.println(X_test_byteArr);
        }
    }
}

Here is the part of Python code on the Rasberry Pi side. I'm using the smbus2 library, and these floats are positive and negative and are kept to 5 decimal places (e.g. -1.43245).

for num in feature:
    msg = i2c_msg.write(addr, str("%.5f\n" % num))
    bus.i2c_rdwr(msg)

Suppose that the buffer in the Wire is 256 bytes (I don't know the size).
If you transfer the float as 4 bytes (binary), then you can transfer 64 float numbers in one I2C session.

9 bytes over 100kHz I2C: 1 ms
Overhead by library and receivefunc: another ms.
Overhead by Serial.println(): another ms
That makes 3 ms per number.
11520 * 3ms = 34 seconds.

The 10 seconds is faster that I think it would be. So the 10 seconds is not so bad after all.