如何在 Azure Notebook 的 Blob 存储中访问 np 数组
How to access np array in blob storage in azure notebook
我已经看到了几个答案,但 none 似乎有效。
我在 blob 存储容器中有一个 .npy 文件,想在机器学习工作区中使用它(我使用的是 azure notebooks)
如何访问它并将其加载到内存中以开始在其上训练模型?
Dataset.Tabular 没有将 npy 作为可接受的文件类型导入笔记本,但有 csv 和 parquet。我有多个维度,所以不确定这些是否适合我?还是有一种简单的方法可以在保持相同结构的同时将我的 .npy 更改为 .csv?
关于这个问题,您可以将 np 数组转换为 pandas 数据帧。然后您可以使用 pandas 数据框创建 TabularDataSet 或将 pandas 数据框转换为 csv 或 parquet 然后创建 TabularDataSet。
例如
# convert the np array into pandas dataframe
from azure.storage.blob.baseblobservice import BaseBlobService
import numpy as np
account_name = '<your account name>'
account_key = '<your account key>'
container_name = '<your container name>'
blob_name = '<your blob name>'
blob_service = BaseBlobService(
account_name=account_name,
account_key=account_key
)
sas_token = blob_service.generate_blob_shared_access_signature(container_name, blob_name, permission=BlobPermissions.READ, expiry=datetime.utcnow() + timedelta(hours=1))
print(sas_token)
url_with_sas = blob_service.make_blob_url(container_name, blob_name, sas_token=sas_token)
print(url_with_sas)
ds = np.DataSource()
# ds = np.DataSource(None) # use with temporary file
# ds = np.DataSource(path) # use with path like `data/`
f = ds.open(url_with_sas)
dat = np.fromfile(f)
import pandas as pd
df = pd.DataFrame(my_array)
#create dataset
from azureml.core import Workspace, Dataset
ws = Workspace.from_config()
datastore = ws.get_default_datastore()
training_data = Dataset.Tabular.register_pandas_dataframe(
df , datastore, 'EthereumRates')
我已经看到了几个答案,但 none 似乎有效。
我在 blob 存储容器中有一个 .npy 文件,想在机器学习工作区中使用它(我使用的是 azure notebooks)
如何访问它并将其加载到内存中以开始在其上训练模型?
Dataset.Tabular 没有将 npy 作为可接受的文件类型导入笔记本,但有 csv 和 parquet。我有多个维度,所以不确定这些是否适合我?还是有一种简单的方法可以在保持相同结构的同时将我的 .npy 更改为 .csv?
关于这个问题,您可以将 np 数组转换为 pandas 数据帧。然后您可以使用 pandas 数据框创建 TabularDataSet 或将 pandas 数据框转换为 csv 或 parquet 然后创建 TabularDataSet。
例如
# convert the np array into pandas dataframe
from azure.storage.blob.baseblobservice import BaseBlobService
import numpy as np
account_name = '<your account name>'
account_key = '<your account key>'
container_name = '<your container name>'
blob_name = '<your blob name>'
blob_service = BaseBlobService(
account_name=account_name,
account_key=account_key
)
sas_token = blob_service.generate_blob_shared_access_signature(container_name, blob_name, permission=BlobPermissions.READ, expiry=datetime.utcnow() + timedelta(hours=1))
print(sas_token)
url_with_sas = blob_service.make_blob_url(container_name, blob_name, sas_token=sas_token)
print(url_with_sas)
ds = np.DataSource()
# ds = np.DataSource(None) # use with temporary file
# ds = np.DataSource(path) # use with path like `data/`
f = ds.open(url_with_sas)
dat = np.fromfile(f)
import pandas as pd
df = pd.DataFrame(my_array)
#create dataset
from azureml.core import Workspace, Dataset
ws = Workspace.from_config()
datastore = ws.get_default_datastore()
training_data = Dataset.Tabular.register_pandas_dataframe(
df , datastore, 'EthereumRates')