2011-10-21 31 views
5

Khi tôi gọi random.sample(arr,length) lỗi trả về random_sample() takes at most 1 positional argument (2 given). Sau khi một số Googling tôi phát hiện ra tôi đang gọi chức năng mẫu ngẫu nhiên của Numpy khi tôi muốn gọi chức năng mẫu của mô-đun ngẫu nhiên. Tôi đã cố gắng nhập khẩu gọn gàng dưới một tên khác, mà không khắc phục được sự cố. Tôi cần Numpy cho phần còn lại của chương trình, mặc dù.Mô-đun ngẫu nhiên của Python không thể truy cập được bởi mô-đun ngẫu nhiên của Numpy

Mọi suy nghĩ? Cảm ơn

Trả lời

14

Âm thanh như bạn có một cái gì đó giống như

import random 
from numpy import * 

random được nhận clobbered bởi việc nhập khẩu NumPy. Nếu bạn muốn giữ import * sau đó bạn sẽ cần phải đổi tên random:

import random as rnd # or whatever name you like 
from numpy import * 

Ngoài ra, và có lẽ tốt hơn, là để nhập khẩu NumPy như một module thay vì chỉ giật tất cả vào không gian tên của mô-đun của bạn:

import random 
import numpy as np  # or leave as numpy, or whatever name you like 
+0

Điều này đã khắc phục sự cố, cảm ơn –

5

Điều này sẽ không xảy ra. Kiểm tra mã của bạn để nhập không hợp lệ như from numpy import *.

+0

Vâng, đó là một phần của sự cố. Cảm ơn –

5

Hãy chắc chắn để giữ cho hàng nhập khẩu khác nhau:

>>> import numpy.random 
>>> import random   # python's random 
+0

Điểm tốt, cảm ơn –

0

Sử dụng:

import numpy as np 
import pandas as pd 
import random as rd 

Thay vì:

import numpy as np import pandas as pd import random

+0

Bạn đã trả lời câu hỏi 4 năm với cùng một lời khuyên đã có trong các câu trả lời khác. Điều này không thêm bất kỳ giá trị nào. –